php 出现Strict Standards: Only variables should be passed by reference in的解决方法

yipeiwu_com6年前PHP代码库

这个问题多半是因为引用传递参数引起的,解决办法一是修改代码不使用引用传递;另一个办法是修改php配置文件,修改error_reporting 其值改为error_reporting = E_ALL& ~E_NOTICE。或者修改函数中的引用方式即可。

ps:修改配置文件时,最好是复制一行,注掉,然后再改,如果需要随时切回。

ECShop出现Strict Standards: Only variables should be passed by reference in的解决方法

今天安装ecshop的时候最上面出现了一个错误提示:Strict Standards: Only variables should be passed by reference in F:\www.xxxx.com\cls_template.php on line 418

解决办法:

打开cls_template.php文件中发现下面这段代码:

$tag_sel = array_shift(explode(' ', $tag));

忘记说了,我的PHP版本是5.4.19,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了

$tagArr = explode(' ', $tag);
$tag_sel = array_shift($tagArr);

这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。

下面我们遇到这段代码,在php5.3以上版本,也会报错误。

$file_suffix = strtolower(array_pop(explode('.', $file_name)));

修改方法:

$fnarray=explode('.', $file_name);
$file_suffix = strtolower(array_pop($fnarray));

这样大家就了解了吧,以后传参需要单独写好,不能一行写完了。

相关文章

PHP实现下载功能的代码

wzskynet#163.com ·php escapeshellcmd多字节编码漏洞 ·详细讲解PHP中缓存技术的应用 ·利用PHP V5开发多任务应用程序 ·详细解析 PHP 向 M...

PHP中array_merge和array相加的区别分析

首先来看看键名是string,两者区别: 复制代码 代码如下:<?php$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JA...

PHP Session_Regenerate_ID函数双释放内存破坏漏洞

SEBUG-ID:1491 SEBUG-Appdir:PHP发布时间:2007-03-17 影响版本: PHP PHP 5.2.1 PHP PHP 5.1.6 PHP PHP 5.1.5...

PHP 导出数据到淘宝助手CSV的方法分享

PHP 导出数据到淘宝助手CSV的方法分享

先上张图实现原理 先读取数据,用相应的数据段写入CSV的行的对应段,然后保存为CSV即可,在最新版的淘宝助手中测试通过了 实现代码复制代码 代码如下:function totaobao(...

推荐十款免费 WordPress 插件

推荐十款免费 WordPress 插件

2015必备wordpress插件列表。为了增强wordpress站点,一些优秀有效的免费wordpress 插件是必不可少的。 WordPress 插件用于提升 wordpress...