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错误,程序也应该按照下面的编码方式来写,因为对于第一段代码,出现了多次的return,也就是说有多个出口,而第二段代码只在最后出现了一次,程序只有一个出口,所以当你的程序很复杂的时候,第二段代码的可读性要更好一些,当然有时候按照第二种写法会 出现一些看似不必要的if…else…语句,但是我们还是应该坚持这样写。^_^