0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

関数の型定義を正しく指定していない場合の挙動で少しハマったお話

Last updated at Posted at 2022-11-01

例として下記のような関数を作ったとします。


function say_hoge():bool
{
  return 'hoge';
}

この関数をよんでいる場所で、この関数の結果を見ると、なぜか「1」で返っている。

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

実行例(outputのところに出力)

型定義をboolにしちゃったケース
bool.png

ちゃんとstringにしたケース
string.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?