PHP 標(biāo)量類型與傳回值類型聲明
PHP 標(biāo)量類型與傳回值類型宣告
標(biāo)量類型宣告
預(yù)設(shè)情況下,所有的PHP檔案都處?kù)度跣蛣e校驗(yàn)?zāi)J健?
PHP 7 增加了標(biāo)量類型宣告的特性,標(biāo)量型別宣告有兩種模式:
- 強(qiáng)制模式(預(yù)設(shè)) ##嚴(yán)格模式
declare(strict_types=1);
程式碼中透過指定strict_types的值(1或0),1表示嚴(yán)格型別校驗(yàn)?zāi)J?,作用於函式呼叫和傳回語句;0表示弱型別校驗(yàn)?zāi)J健?可以使用的型別參數(shù)有:- int
- #float
- bool
- string
- interfaces
- array
#callable
強(qiáng)制模式實(shí)例
實(shí)例<?php // 強(qiáng)制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>以上程式執(zhí)行輸出結(jié)果為:
實(shí)例匯總將參數(shù)4.1 轉(zhuǎn)換為整數(shù)4 後再相加。
嚴(yán)格模式實(shí)例
實(shí)例
<?php // 嚴(yán)格模式 declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>#以上程式由於採(cǎi)用了嚴(yán)格模式,所以如果參數(shù)中出現(xiàn)不適整數(shù)的類型會(huì)報(bào)錯(cuò),執(zhí)行產(chǎn)出結(jié)果為:
PHP?Fatal?error:??Uncaught?TypeError:?Argument?2?passed?to?sum()?must?be?f,?
傳回類型宣告- PHP 7 增加了對(duì)傳回類型宣告的支持,傳回型別宣告指明了函數(shù)傳回值的型別。 可以宣告的傳回型別有:
- int
- #float
- bool
- string
- interfaces
#callable
傳回類型宣告實(shí)例實(shí)例中,要求傳回結(jié)果為整數(shù):
實(shí)例
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value; } print(returnIntValue(5)); ?>
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value + 1.0; } print(returnIntValue(5)); ?>######以上程式由於採(cǎi)用了嚴(yán)格模式,回傳值必須是int,但是計(jì)算結(jié)果是float,所以會(huì)報(bào)錯(cuò),執(zhí)行輸出結(jié)果為:#########Fatal?error:?Uncaught?TypeError: Return?value?of?returnIntValue()?must?be?of?the?type?integer,?float?returned...##########################################################################################################################################1