PHP5.4 以降の PHP 環境では、次のエラー メッセージが表示される場合があります:
Notice: Only variable references should be returned by reference
どのようなスクリプトがこのようなエラーを引き起こすのでしょうか?例を挙げてみましょう:
<?php function & foo($param) { if($param == 1) { return array(); } return false; } var_dump(foo(1)); ?>
解決策は次のように非常に簡単です:
<?php function & foo($param) { $result = false; if($param == 1) { $result = array(); } return $result; } var_dump(foo(1)); ?>
実際には、上記の Notice エラーが発生しない場合でも、次のコーディング方法に従ってプログラムを作成する必要があります。これは、最初のコードでは複数のリターンがあり、複数の終了があることを意味しますが、2 番目のコードでは複数のリターンが存在するためです。コードのみ プログラムの出口は 1 つだけなので、プログラムが非常に複雑な場合は、2 番目のコードの方が読みやすくなります。 2 番目の方法は if...else... ステートメントですが、それでもこの方法で記述する必要があります。 ^_^