Strict Standards: Only variables should be passed by reference in

php中使用内置的reset函数可以获取array的第一个元素的值。例如:

 代码如下 复制代码

$arr = array('one', 'two', 'three');

echo reset($arr);  

// 输出的结果为 one对于下述代码,如果php开启了"Strict Standards",将会看到"Strict Standards: Only variables should be passed by reference in"的提示。

 代码如下 复制代码

$str = 'netingcn.com';

echo reset(explode('.', $str));

为什么会这样呢?可以先看看reset函数的定义:

function reset (array &$array) {}从定义中可以看到,reset接受的参数是一个array的引用。而上述代码中explode返回值不是任何array的引用,所以在"Strict Standards"下会有上述提示。解决办法很简单,只需要把reset(explode('.', $str))分两步写即可。第一步先把explode的返回值赋给一个变量,第二步把这个变量作为reset参数。

出现上面的提示的不只是reset函数,只要参数接受的是对象引用,而传值直接使用function返回值都会看到那样的提示。例如内置的array_pop、shuffle、curent、next、prev、next等等

时间: 2024-08-03 05:52:22

Strict Standards: Only variables should be passed by reference in的相关文章

ecshop提示Strict Standards: Only variables should be passed by reference in错误

ecshop提示Strict Standards: Only variables should be passed by reference in E:/Tools/ECShop_V2.7.3_UTF8_release1106/upload/includes/cls_template.php on line 418 这个错误,搜索问题原来是php版本的问题,我是用的php5.4版本的,解决办法如下:    只要418行把这一句拆成两句就没有问题了   代码如下 复制代码 $tag_sel = a

解决ECShop出现Strict Standards: Only variables should be passed by reference in问题

今天开始研究ECShop,在安装完成的时候发现首页顶部.左侧和底部出现: Strict Standards: Only variables should be passed by reference in F:\wamp\www\ecshop\upload\includes\cls_template.php on line 418 的报错信息. 第一种解决方法是杀到cls_template.php文件中发现下面这段代码: $tag_sel = array_shift(explode(' ', $

ECshop Strict Standards: Only variables should be passed by reference in解决办法

错误提示 Strict Standards: Only variables should be passed by reference in D:/wamp/ecshop/includes/cls_template.php on line 406 用软件打开406行是这句话$tag_sel = array_shift(explode(' ', $tag)); 解决方法 5.3以上版本的问题,应该也和配置有关 只要406行把这一句拆成两句就没有问题了  代码如下 复制代码 $tag_sel = a

Ecshop提示Only variables should be passed by reference in错误

Ecshop是个坑爹货,为什么tiandi会说它是个坑爹货呢,请看一下下面的官方的运行环境推荐: 服务器端运行环境推荐 ·php版本5.0以上5.3以下的版本(推荐使用5.2系列版本) ·Mysql版本5.0及以上 ·空间安装zend ·空间支持文件锁功能 ·开启GD功能 ·Mysql函数支持mbstring.iconv.fsockopen 看见了吧,PHP5.3以下的版本,还推荐使用5.2的,尼妹的,现在哪个虚拟机还敢用5.3以下的版本?还在用5.3以下的版本?看看tiandi用的2两个主机,

php5.5中ecshop提示Only variables should be passed by reference

php大家用的版本不断提高,Ecshop没有来得及修改那么及时. Ecshop安装出现 Only variables should be passed by reference 5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了  代码如下 复制代码  $tag_sel = array_shift(explode(' ', $tag)); 改成:  $tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag

iis7.0-求助,报错PHP Strict Standards

问题描述 求助,报错PHP Strict Standards 试了好多方法,没用,请问这个怎么解决,用的iis7+php5.3的,报错PHP Strict Standards: Non-static method FastJSON::convert() should not be called statically, 代码是:return FastJSON::convert($array); 就是这行出错 解决方案 http://blog.csdn.net/tgh1981/article/det

ecshop提示Strict Standards: Non-static method cls_image::gd_version()

在使用ecshop时提示 ecshop提示Strict Standards: Non-static method cls_image::gd_version() should not be called statically in E:/wwwroot/weirenchou/includes/lib_base.php on line 346 这个错误,搜索问题原来是php版本的问题,我是用的php5.4版本的,解决办法如下: 找到346行吧 return cls_image::gd_versio

PHP的错误机制总结

PHP的错误机制总结 PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课. 特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解php有哪些错误.截至到php5.5,一共有16个错误级别 注意:尝试下面的代码的时候请确保打开error_log: error_reporting(E_ALL); ini_set('display_errors', 'On'); E_ERROR 这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错

高版本PHP下搭建ECShop的问题整理

ECSshop版本2.7.3,PHP版本5.5.12,搭建时发现诸多报错,一一列举解决方法. 1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\www\ecshop\install\includes\lib_installer.php on line 31 lib_installer.php的31行调用了gd_version()函数,但是该函数未申