Notice: Only variable references should be returned by reference(PHP版本兼容性问题)

摘自: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…语句,但是我们还是应该坚持这样写。^_^

时间: 2024-10-10 20:09:53

Notice: Only variable references should be returned by reference(PHP版本兼容性问题)的相关文章

php5.6 CI的问题(Only variable references should be returned by reference)

[转载] A PHP Error was encountered Severity: Notice Message: Only variable references should be returned by reference Filename: core/Common.php Line Number: 257 原代码: return $_config[0] =& $config; 修改后: $_config[0] =& $config; return $_config[0]; #CI

PHP之CI框架架设错误--Only variable references should be returned by reference

解决参考 http://www.rafalinux.com/ La búsqueda fue bastante infructuosa, y hasta hace un par de días, nadie respondió a un llamamiento en los foros de Ellislab (el equipo creador de CodeIgniter). Varias soluciones se habían propuesto, pero ninguna era ef

PHP提示Notice: Undefined variable的解决办法

在测试PHP代码的过程中,会遇到这样的问题:PHP提示Notice: Undefined variable,遇到这样的问题很纠结,但是很容易解决. 今天晚上,我就遇到了这样的问题,到网上搜索了很多解决方法,整理如下,仅供参考,同时再次感谢网上各位大牛给大家提供的各式各样的方法! PHP默认的配置会报这个错误,虽然有利于发现错误,但同时字现实实践中会出现很多问题. 解决方法如下: 一.修改php.ini配置文件 error_reporting设置:            找到error_repor

Notice: Undefined variable解决办法

PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable 这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题. 需要设置显示错误级别,来解决问题. 网络上的通用解决办法是修改php.ini的配置: 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE 2) regis

解决ecshop 前后台出现Notice: Undefined variable: data in

今天有一个客户的ecshop网站访问不了,打开他的网站出现一个很少出现的错误提示“Notice: Undefined variable: data in ”,详细错误提示如下: Notice: Undefined variable: data in http://www.xxx.com/includes/lib_base.php on line 1241 Warning: require(F:/freehost/b2btianshu/web/languages//common.php) [fun

PHP内核探索之变量(2)-理解引用

本文主要内容: 引论 符号表与zval 引用原理 回到最初的问题 一.引论 很久之前写了一篇关于引用的文章,当时写的寥寥草草,很多原理都没有说清楚.最近在翻阅Derick Rethans(home: http://derickrethans.nl/ Github: https://github.com/derickr)大牛之前做的报告时,发现了一篇讲解PHP引用机制的文章,也就是这个PDF.文中从zval和符号表的角度讲解了引用计数.引用传参.引用返回.全局参数等的原理,洋洋洒洒,图文并茂,甚是

nginx下搭建CodeIgniter问题集锦

nginx环境下CodeIgniter会出现一些问题! 1.数据库驱动连接失败! 出现如下问题: A PHP Error was encountered Severity: Warning Message: mysqli::real_connect(): (HY000/2002): No such file or directory Filename: mysqli/mysqli_driver.php 解决方法: 这个问题是php.ini配置的问题. 默认以下配置为空,将以下三个选项设置成你my

【转载】CodeIgniter与PHP5.6的兼容问题

错误提示: A PHP Error was encountered Severity: Notice Message: Only variable references should be returned by reference Filename: core/Common.php Line Number: 257 原代码: return $_config[0] =& $config; 修改后: $_config[0] =& $config; return $_config[0]; 以上

start bbs轻论坛安装时数据库提示错误

A PHP Error was encounteredSeverity: NoticeMessage: Only variable references should be returned by referenceFilename: core/Common.phpLine Number: 257 解决方法: 找到system/core目录下的Common.php文件的257行把 return $_config[0] =& $config; 改为 $_config[0] =& $confi