【问题标题】:Strict Standards: Only variables should be passed by reference - php error严格标准:只能通过引用传递变量 - php错误
【发布时间】:2012-08-06 20:42:02
【问题描述】:
$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 行中只能通过引用传递变量
如何消除此错误?请和谢谢你:)
【问题讨论】:
标签:
php
variables
standards
strict
【解决方案1】:
end()期望它的参数可以通过引用传递,只有变量可以通过引用传递:
$array = explode('.', $file_name);
$file_ext = end( $array);
您可以先将数组保存到变量中,然后调用end() 来解决此问题。
【解决方案2】:
如果您想要数组中的最后一项,请执行以下操作:
$arr = explode(".", $file_name);
$file_ext = $arr[count($arr) - 1];
如果您只是想从文件中获取扩展名,请使用
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
【解决方案3】:
其实,如果你写 $ext = end(explode('.', $filename));为了获取文件扩展名,“只有变量应该通过引用传递”可以在 php.ini 中显示。出于这个原因,尝试使用它两个步骤,如:
$tmp = explode('.', $filename);
$ext = end($tmp);