PHPのスカラー型と戻り値の型宣言
PHP スカラー型と戻り値の型宣言
スカラー型宣言
デフォルトでは、すべての PHP ファイルは弱い型チェック モードになっています。
PHP 7 では、スカラー型宣言の機能が追加されました。
- force モード (デフォルト)
- strict モード
スカラー型宣言の構文形式:
declare(strict_types=1) ) ;
コード内で strict_types の値 (1 または 0) を指定すると、1 は関数呼び出しと return ステートメントに適用される厳密な型チェック モードを示し、0 は弱い型チェック モードを示します。
使用できる型パラメータは次のとおりです:
int
float
bool
string
interfaces
-
配列
呼び出し可能
強制モード 例
例
<?php
// 强制模式
function sum(int ...$ints)
{
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>上記のプログラム実行出力結果は、
9
例の概要 パラメータ 4.1 を整数 4 に変換して加算します。
Strictモードの例
Example
<?php
// 严格模式
declare(strict_types=1);
function sum(int ...$ints)
{
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>上記のプログラムはStrictモードを採用しているため、パラメータに不適切な整数型がある場合、実行出力結果は以下のようになります。
PHP Fatal error : Uncaught TypeError: sum() に渡される引数 2 は、整数、指定された文字列、呼び出し先の型である必要があります...
戻り値の型宣言
PHP 7 では、関数の型を指定する戻り値の型宣言のサポートが追加されました戻り値。
宣言できる戻り値の型は次のとおりです:
int
float
bool
string
interfaces
-
配列
呼び出し可能
戻り値の型 宣言インスタンス
インスタンスでは、戻り結果は整数である必要があります:
インスタンス
<?php
declare(strict_types=1);
function returnIntValue(int $value): int
{
return $value;
}
print(returnIntValue(5));
?>上記のプログラム実行出力結果は次のとおりです:
5
戻り値の型宣言エラー インスタンス
インスタンス
<?php
declare(strict_types=1);
function returnIntValue(int $value): int
{
return $value + 1.0;
}
print(returnIntValue(5));
?>上記のプログラムは strict モードのため、戻り値は int である必要がありますが、計算結果は float であるため、エラーが報告されます。
Fatal error: Uncaught TypeError: returnIntValue() の戻り値は整数型、浮動小数点型である必要があります...


