例として下記のような関数を作ったとします。
function say_hoge():bool
{
return 'hoge';
}
この関数をよんでいる場所で、この関数の結果を見ると、なぜか「1」で返っている。
原因としては、 関数の返り値の定義を「bool」に指定している から。
関数内のコードが少し複雑なこともあり(上の見本はシンプルですが)
どっかで真偽値に変わってるのか?としばらく調査してしまっていました。。。
ちなみに、定義をarrayにすると Fatal error: Uncaught TypeErrorエラーになります。こっちはすぐ分かるのですが、
上記の例の場合だと原因が分かりづらいので、型定義はちゃんとしようというお話でした。
実行例(outputのところに出力)