You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP上传图片出现Only variables should be passed by reference错误如何解决?

问题原因

这个报错是PHP的典型语法规范问题,array_pop() 函数的参数要求是变量引用,只能传入实际声明的变量,不能直接传入函数执行返回的临时值,你代码里直接把explode()的返回结果传给array_pop(),不符合参数要求,所以触发了Notice提示。

修复方案

你只需要把explode()的结果先赋值给一个临时变量,再用array_pop()处理即可,修改后的代码如下:

// 先把文件名分割结果赋值给变量
$file_name_arr = explode('.', $_FILES['slider_image']['name']);
$ext = array_pop($file_name_arr);

可选简化写法

如果你不想额外声明临时变量,也可以用PHP自带的路径处理函数直接获取文件后缀,写法更简洁也不会触发报错:

$ext = pathinfo($_FILES['slider_image']['name'], PATHINFO_EXTENSION);

这种写法是官方更推荐的文件后缀获取方式,不需要自己分割字符串处理,兼容性更好。

内容的提问来源于stack exchange,提问作者Kyle White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:15:03