首页 / PHP / 求教报这个异常可能是什么原因
求教报这个异常可能是什么原因
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了求教报这个异常可能是什么原因,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1005字,纯文字阅读大概需要2分钟。
内容图文
![求教报这个异常可能是什么原因](/upload/InfoBanner/zyjiaocheng/228/164b64029cdf4093817758258e5e71ee.jpg)
本地安装的ecshop网站传到网上报这个错误 Strict Standards: Only variables should be passed by reference in lib_main.php on line 2661 本地php是5.2的
这个文件 的2661行是这样的 $ext = end(explode('.', $tmp));
$tmp = basename($tmp,".$ext"); 求教可能是什么原因
------解决思路----------------------
Strict Standards: Only variables should be passed by reference
严格的标准:在这里只能是变量
$ext = end(explode('.', $tmp));
应写作
$t = $ext = explode('.', $tmp);
$ext = end($t);
这是 php 5.4 以后才有的错误检查
其实 php 早就已经提供了更简洁的函数
$ext = pathinfo($tmp, PATHINFO_EXTENSION);
------解决思路----------------------
end需要的参数是引用类型 ,引用类型必须是左值,如下
mixed end ( array &$array )
而函数explode返回的的是右值,是不能作为引用的
------解决思路----------------------
mixed end ( array &$array )
end内参数是引用类型。
是explode返回的并不是变量,所以出错。
其实改一改就可以。
$ext = substr($tmp, strrpos($tmp,'.')+1);
或
$ext = explode('.', $tmp);
$ext = array_pop($ext);
echo $ext;
内容总结
以上是互联网集市为您收集整理的求教报这个异常可能是什么原因全部内容,希望文章能够帮你解决求教报这个异常可能是什么原因所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。