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 行中仅应通过引用传递变量

我该如何摆脱这个错误?谢谢,麻烦您了 :)

4

3 回答 3

15

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

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

您可以通过先将数组保存到变量中来解决此问题,然后调用end().

于 2012-08-06T20:43:36.117 回答
0

如果您想要数组中的最后一项,请执行以下操作:

$arr = explode(".", $file_name);
$file_ext = $arr[count($arr) - 1];

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

$ext = pathinfo($file_name, PATHINFO_EXTENSION);
于 2012-08-06T20:44:44.587 回答
0

实际上,如果你写 $ext = end(explode('.', $filename)); 为了获取文件扩展名,可以在 php.ini 中显示“只能通过引用传递变量”。出于这个原因,尝试分两步使用它,例如: $tmp = explode('.', $filename); $ext = 结束($tmp);

于 2017-11-09T02:01:23.140 回答