Notice: Only variable references should be returned by reference(PHP版本兼容性问题)
2016-04-24 13:21
489 查看
摘自:http://sushener.spaces.live.com/blog/cns!BB54050A5CFAFCDD!435.entry
PHP5一个很让人恼火的一点就是BC(向后兼容)不是很理想。比如说,很多的PHP4的脚本都可能会出现下面的错误提示: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…语句,但是我们还是应该坚持这样写。^_^
PHP5一个很让人恼火的一点就是BC(向后兼容)不是很理想。比如说,很多的PHP4的脚本都可能会出现下面的错误提示: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…语句,但是我们还是应该坚持这样写。^_^
相关文章推荐
- ArcGIS server开发之API for js 本地部署
- JSP取得绝对路径
- [JZOJ4465][JSOI2016?]飞机调度
- css练习
- 使用ajax实现用户登录验证(升级版)
- css
- 第八周总结及H5、Js实现五子棋效果
- 不得不说的谷歌开发者模式:谷歌调试模式调试js代码总结
- 在js中实现邮箱格式的验证
- [react002] component基本用法
- [JZOJ4468][JSOI2016?]轻重路径
- 《CSS3实战》笔记--弹性盒模型(二)
- qt使用样式表修改控件属性
- JS求数组差集
- HTML基础
- CSS盒子模型
- More Effective C#
- 工欲善其事必先利其器之javascript调试工具
- JS自定义事件绑定--通过URL触发不同的点击事件
- javascript 中bind()的使用