PHPでnullableな戻り値の型を指定する(タイプヒント)(PHP7以降)

PHPでnullableな戻り値の型を指定するには、戻り値に指定する型名の前に「?(クエスチョンマーク)」を付けます

<?php

function exists($key, $array): ?string {
    return $array[$key];
}

$array = ['1' => 'var1', '2' => 'var2'];

var_dump(exists('1', $array));
var_dump(exists('3', $array));

--- 実行結果 ---
string(4) "var1"
NULL

「?」をつけずにnullを返すとFatal errorになります。

<?php

function exists($key, $array): string {
    return $array[$key];
}

$array = ['1' => 'var1', '2' => 'var2'];

var_dump(exists('1', $array));
var_dump(exists('3', $array));

--- 実行結果 ---
string(4) "var1"

Fatal error: Uncaught TypeError: Return value of exists() must be of the
 type string, null returned in sample.php:4
Stack trace:
#0 sample.php(10): exists('3', Array)
#1 {main}
  thrown in sample.php on line 4

nullableな戻り値のタイプヒントは以上です。

タイトルとURLをコピーしました