PHP7中標量型別declare的用法詳解

2021-09-08 05:24:53 字數 3376 閱讀 9557

這篇文章主要介紹了php7標量型別declare用法,結合例項形式分析了php7中標量型別declare的功能、特性與相關使用技巧,需要的朋友可以參考下

php7為了提高執行效率,在函式方法中增加了標量型別(布林、浮點、整型、字元)的申明特性,節省了對資料型別的檢測。

php7 仍然支援弱型別檢測,即仍然可以使用原來的方式宣告形參。

標量宣告有兩種特性:

強制模式(預設):體現在型別轉換上

嚴格模式

模式宣告:declare(strict_types=1);

預設情況值為0,值為1代表為嚴格校驗的模式

可以使用的型別引數:

int-float-bool-string-inte***ces-array-callable

作用於形參與返回值型別說明,可選

形參

//強制模式

<?php

/**

* created by phpstorm.

* user: bee

* date: 2016/4/22

* time: 10:17

*/

// php7之前申明方式

functiontype_weak(...$int)

// 強制模式 php7宣告方式

//強制模式下會將所有實參轉換為整型

functionsum(int ...$ints)

echotype_weak(2,'3',0.11);

echo"";

echosum(2,'3',0.11);

執行效果圖如下:

//將模式申明為嚴格模式

<?php

/**

* created by phpstorm.

* user: bee

* date: 2016/4/22

* time: 10:17

*/

//declare 必須在檔案首部

declare(strict_types=1);

// 強制模式(預設)

functiontype_weak(...$int)

// 強制模式

functionsum(int ...$ints)

echotype_weak(2,'3',0.11);

echo"";

//實參存在字串與浮點型,報錯

echosum(2,'3',0.11);

執行效果圖如下:

返回值

<?php

/**

* created by phpstorm.

* user: bee

* date: 2016/4/22

* time: 10:17

*/

declare(strict_types=0);

// 強制模式(預設)

functiontype_weak(...$int) :int

// 強制模式

functionsum(int ...$ints) :int

echotype_weak(2,'3',0.11);

echo"";

echosum(2,'3',0.11);

執行效果圖如下:

PHP7型別約束

在php7之前,函式和類方法不需要宣告變數型別,任何資料都可以被傳遞和返回,導致幾乎大部分的呼叫操作都要判斷返回的資料型別是否合格。為了解決這個問題,php7引入了型別宣告。目前有兩類變數可以宣告型別 形參,返回值。支援的型別有整形,浮點型,字串型,布林型。如下 function study int...

PHP7引用型別

php5在引入引用計數後,使用了refcount gc來記錄次數,同時使用is ref gc來記錄是否是引用型別。例如 a hello a zval1 type is string,refcount gc 1,is ref gc 0 這個時候 a指向乙個結構體,主要看refcount gc 1,這就...

php7 匿名繼承類 PHP7中的匿名類使用方法

在php7之後,php中加入了匿名類的特性。匿名類和匿名方法讓php成為了更現代化的語言,也讓我們的 開發工作越來越方便。我們先來看看匿名類的簡單使用。直接定義 obja new class public function getname echo i m obja obja getname 方法中...