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

PHP严格标准错误求助:仅变量应按引用传递(file.php第100行)

解决Strict Standards: Only variables should be passed by reference错误

嘿,这个严格标准错误我太熟悉了!问题就出在你代码里的end(explode(".", $file))这部分——PHP的end()函数要求传入一个变量引用,但你直接把explode()返回的临时数组传进去了,在严格模式下就会触发这个警告。

修复步骤很简单:

  • 先把explode(".", $file)的结果存到一个变量里,让它成为一个可被引用的变量
  • 再把这个变量传给end()获取文件扩展名

修改后的代码片段:

原来的代码行:

if(in_array(end(explode(".", $file)), $extensions)&&is_file($dir.$file)) { $c++; }

替换成:

// 先拆分文件名到变量,再取最后一个元素作为扩展名
$fileSegments = explode(".", $file);
$fileExtension = end($fileSegments);
// 条件判断拆分后更清晰,同时符合严格标准
if(in_array($fileExtension, $extensions) && is_file($dir . $file)) { 
    $c++; 
}

这样改完不仅解决了严格标准的错误,代码的可读性也提升了不少~另外顺手给&&和.前后加了空格,让逻辑看起来更清楚。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:25