end(explode)严格标准:仅应传递变量的引用

4
我有如下代码可获取文件的扩展名:
$extension = end(explode(".", $_FILES["rfile"]["name"]));

本地环境运行正常,但是当我把它上传到在线主机时,会出现以下错误:

严格标准: 在...中只应传递变量


你有没有在php.net上阅读过end函数的作用以及它接受哪些参数? - Mjh
@Mjh 我还没有涉及到技术细节,我只是从 https://dev59.com/02035IYBdhLWcg3wbPY5#5427229 获取了例子。 - Elyor
这就是为什么你应该总是阅读一个问题是否被标记为重复。正如你所注意到的,这个问题是这个问题的重复,它提供了准确的答案。你链接的问题不准确,不应该使用。不幸的是,它吸引了很多访问者 :/ - Mjh
可能是仅应传递变量的引用的重复问题。 - miken32
3个回答

8

7

PHP end 接受一个变量的引用作为参数。 http://php.net/manual/zh/function.end.php

因此,在启用严格标准的情况下,您应该先将 explode 的结果放入一个变量中:

$exp = explode(".", $_FILES["rfile"]["name"])
$extension = end($exp);

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接