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

时间:2012-08-06 20:42:03

标签: php variables standards strict

    $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行只能通过引用传递变量

如何摆脱此错误?拜托,谢谢你:)

3 个答案:

答案 0 :(得分:15)

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

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

您可以先将数组保存到变量,然后调用end()

来解决此问题

答案 1 :(得分:0)

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

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

如果您尝试从文件中获取扩展程序,请使用

$ext = pathinfo($file_name, PATHINFO_EXTENSION);

答案 2 :(得分:0)

实际上,如果你写$ ext = end(爆炸('。',$ filename));为获取文件扩展名然后"只有变量应该通过引用传递"可以在php中显示。出于这个原因,尝试使用它两个步骤,如: $ tmp = explode('。',$ filename); $ ext = end($ tmp);