PHPのスカラー型と戻り値の型...LOGIN

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


スカラー型宣言

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

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

  • Force モード (デフォルト)
  • Strict モード

スカラー型宣言の構文形式:

declare(strict_types=1);

code 値 (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モードの例

Instance

<?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: Argument 2 passed to sum() must be of the type integer, string given, called in……

戻り値の型宣言

PHP 7 の追加 戻り値の型宣言のサポートに加えて、戻り値の型宣言で関数の戻り値の型を指定します。

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

  • int

  • float

  • bool

  • string

  • interfaces

  • 配列

  • 呼び出し可能

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

インスタンスでは、戻り値は整数である必要があります:

インスタンス

<?php
declare(strict_types=1);

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

print(returnIntValue(5));
?>

上記のプログラム実行出力結果は次のとおりです:

5

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

インスタンス

rrree

上記のプログラムは strict モードを使用しており、戻り値は int である必要がありますが、計算結果は float であるため、実行出力結果は次のようになります。

<?php
declare(strict_types=1);

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

print(returnIntValue(5));
?>
次のセクション
<?php // 强制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
コースウェア