亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHPのスカラー型と戻り値の型宣言

スカラー型宣言

デフォルトでは、すべての PHP ファイルは弱い型チェック モードになっています。

PHP 7 では、スカラー型宣言の機能が追加されました:

force モード (デフォルト)

strict モード

スカラー型宣言の構(gòu)文形式:

declare(strict_types) = 1);

strict_types の値 (1 または 0) は、関數(shù)呼び出しと return ステートメントに適用される?yún)椕埭市庭隶Д氓?モードを示します。

declare(strict_types=1) はファイルの最初のステートメントでなければなりません。このステートメントがファイル內(nèi)の他の場所にある場合、コンパイル エラーが生成され、ブロック モードは明示的に禁止されます。

strict_types ディレクティブは、指定されたファイルに影響を與えますが、(include などを通じて)それにインクルードされた他のファイルには影響しません。このディレクティブは実行時にコンパイルされ、変更できません。その仕組みは、関數(shù)呼び出しと戻り値の型チェックが型制約に準拠するようにオペコードにフラグを設(shè)定することです。

使用できる型パラメータは次のとおりです:

呼び出し可能

強制モード 例

<?php 
// 強制模式 
function sum(int ...$ints) 
{ 
   return array_sum($ints); 
} 
print(sum(2, '3', 4.1)); 
?>

上記のプログラム実行出力結(jié)果は、

9

例の概要 パラメータ 4.1 を整數(shù) 4 に変換して加算します。

Strictモードの例

Example

<?php 
// 嚴格模式 
declare(strict_types=1); 
function sum(int ...$ints) 
{ 
   return array_sum($ints); 
} 
print(sum(2, '3', 4.1)); 
?>
上記のプログラムはStrictモードを採用しているため、パラメータに不適切な整數(shù)型が出現(xiàn)するとエラーが報告されます。 PHP Fatalエラー: キャッチされません TypeError: sum() に渡される引數(shù) 2 は、整數(shù)、指定された文字列、呼び出し先の型である必要があります...

戻り値の型宣言

PHP 7 では、戻り値の型宣言のサポートが追加されました。戻り値の型宣言は、関數(shù)の戻り値の型を指定します。

宣言できる戻り値の型は次のとおりです:

呼び出し可能

戻り値の型 宣言インスタンス

インスタンスでは、戻り値は整數(shù)である必要があります:

インスタンス

<?php 
declare(strict_types=1); 
function returnIntValue(int $value): int 
{ 
   return $value; 
} 
print(returnIntValue(5)); 
?>
上記のプログラム実行出力結(jié)果は次のとおりです: 5

戻り値の型宣言エラー インスタンス

インスタンス

<?php 
declare(strict_types=1); 
function returnIntValue(int $value): int 
{ 
   return $value + 1.0; 
} 
print(returnIntValue(5)); 
?>

上記プログラムはstrictモードを採用しているため戻り値はintである必要がありますが、計算結(jié)果はfloatなのでエラーが報告されます:

Fatal error: Uncaught TypeError: returnIntValueの戻り値。 () は整數(shù)型である必要があり、浮動小數(shù)點數(shù)が返されます...


學(xué)び続ける
||
<?php // 強制模式 function sum(int $ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>