国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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)格模式
標(biāo)量類型宣告語(yǔ)法格式:

declare(strict_types=1);

程式碼中透過(guò)指定strict_types的值(1或0),1表示嚴(yán)格型別校驗(yàn)?zāi)J?,作用於函式呼叫與傳回語(yǔ)句;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é)果為:

9

實(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í)行輸出結(jié)果為:
  • PHP Fatal error:  Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……
  • 傳回類型宣告

  • PHP 7 增加了對(duì)傳回型別宣告的支持,傳回型別宣告指明了函數(shù)傳回值的型別。
  • 可以宣告的傳回型別有:

  • int

  • #float

  • bool

  • string

interfaces

array

####### ###callable############傳回類型宣告實(shí)例######實(shí)例中,要求傳回結(jié)果為整數(shù):#########實(shí)例###
<?php
declare(strict_types=1);

function returnIntValue(int $value): int
{
   return $value;
}

print(returnIntValue(5));
?>
# #####以上程式執(zhí)行輸出結(jié)果為:###
5
###返回類型宣告錯(cuò)誤實(shí)例##########實(shí)例###
<?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...
###
繼續(xù)學(xué)習(xí)
||
<?php // 強(qiáng)制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
提交重置程式碼