こんなプログラムがあったとき
public function foo($key, $array) { if($key != null) { return $array[$key]; } }
このプログラム、もし$keyがnullだったとき、returnを通らないです。どうなるでしょう。
return nullされる
http://php.net/manual/ja/functions.returning-values.php
return を省略した場合は NULL を返します。
ということで、return nullされます。
すると、きっと2つ程疑問が出ると思います。
voidじゃないの?
返り値の型として void が導入されました。返り値の型を void と宣言した関数は、関数内での return 文を省略するか、あるいは空の return を使う必要があります。 void 関数から NULL を返すことはできません。
void 関数の返り値を使おうとした場合はその値は NULL と評価されます。 警告は発生しません。警告を発生させると、一般的な高階関数の利用にも影響するからです。
ざっくりいうと、
『voidという値は存在しなくて、voidとは意味のない値を指す』
『意味のない値なので、returnがvoidのときは、そのreturn値を使うことはできない』
return nullは明記しなきゃいけないの?
public function foo($key, $array) { if($key != null) { return $array[$key]; } return null; }
こう書かなければいけないというのは、PSRなどで決められていません。
但し、極力明記するべきだと思います。
可読性も上がりますし、そもそもコードで検討忘れだったりするかもしれません。
明記することで、関数に対する意味などと正しく定義しやすくなります。
あるいは、以下のように書き換えることもできます。
public function foo($key, $array) { if($key == null) { return null; } return $array[$key]; }
極力、他の人のためにも、明記するほうが良いでしょう。