【发布时间】:2017-05-28 12:43:18
【问题描述】:
如果我使用
strtolower(end(explode('.',$_FILES['file']['name'])));
它给我错误
PHP 严格标准:只有变量应该通过引用传递
我想我只是先将值存储在变量中,然后使用爆炸
$filename = $_FILES['file']['name'];
$filearray = explode('.',$filename);
效果很好
但是我还有一条线
strtolower(end($filearray));
我认为它应该给我同样的错误,我的意思是我应该首先将 end($filearray) 存储在一个变量中,然后在 strtolower() 中使用该变量,
但这并没有给我任何错误,那么为什么strtolower()接受一个函数作为参数而不给出错误,有人可以解释为什么吗?
【问题讨论】:
-
顺便说一句:完全题外话,但raina77ow 已经给了你一个正确的答案。但是请查看您的案例的路径信息 => pathinfo($_FILES["file"]["name"])。为您提供一个包含所有您需要的数组(目录名、文件名、扩展名和基本名)php.net/manual/de/function.pathinfo.php