我收到的错误是我前一段时间没有看过的。不确定php版本是否因此而改变。对于PHP来说,我是非常基础的,所以任何见解都会很棒。基本上我只是从文件夹中获取一些文件,添加文件的图像(如果没有使用库存图像),然后列出它们的文件。
`
if(!in_array(end(explode(".",$file)),$allowed_extensions)){
错误在此行显示Strict Standards: Only variables should be passed by reference
错误:{{1}}
答案 0 :(得分:1)
这意味着你的end()函数返回一个表的引用(函数爆炸的结果),触发php手册。
此处有更多信息:http://www.php.net/manual/en/language.references.return.php
一个简单的解决方法是将它放在一个变量中,然后在循环中使用它:
$x = end(explode(".",$file));
if(!in_array($x,$allowed_extensions)){
$image = "http://fitter.henry-griffitts.com/fitter/images/pdf.png";
}else{
$image = $file;
}
答案 1 :(得分:0)
试试此代码
问题是,该结果需要引用,因为它修改了数组的内部表示(即它使当前元素指针指向最后一个元素)。
爆炸('。',$ file_name)的结果无法转换为引用。这是PHP语言中的限制,可能出于简单原因而存在。
foreach($files as $file){
$exploded_file = explode(".",$file);
if(!in_array(end($exploded_file),$allowed_extensions)){
$image = "http://fitter.henry-griffitts.com/fitter/images/pdf.png";
}else{
$image = $file;
}
}