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
相关产品推荐
相关产品推荐

