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な戻り値のタイプヒントは以上です。