严格标准:只有变量应该通过引用传递 - PHP错误

5
    $file_name = $_FILES['profile_image']['name'];
    $file_ext = end(explode('.', $file_name)); //line 10
    $file_ext = strtolower($file_ext);
    $file_temp = $_FILES['profile_image']['tmp_name'];

严格标准:仅限变量传递可以在第10行内引用。

如何消除此错误?谢谢 :)


可能是重复的问题:Strict Standards: Only variables should be passed by reference - Lorenz Meyer
可能是仅应传递变量的引用的重复问题。 - miken32
3个回答

15

end() 期望其参数能够通过引用传递,而只有变量可以通过引用传递:

$array = explode('.', $file_name);
$file_ext = end( $array); 

你可以先将数组保存到变量中,然后调用 end()来解决这个问题。


0
如果你想要数组中最后一个元素,可以这样做:
$arr = explode(".", $file_name);
$file_ext = $arr[count($arr) - 1];

如果您只想从文件中获取扩展名,请使用

$ext = pathinfo($file_name, PATHINFO_EXTENSION);

0
其实如果你用 $ext = end(explode('.', $filename)); 来获取文件扩展名,可能会在 PHP 中显示“只应传递变量引用”。为此,请尝试使用两步走的方式: $tmp = explode('.', $filename); $ext = end($tmp);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接