结束(爆炸)严格标准:只有变量应该通过引用传递

Ely*_*yor 3 php explode

我有这个代码来获取文件的扩展名:

$extension = end(explode(".", $_FILES["rfile"]["name"]));
Run Code Online (Sandbox Code Playgroud)

这在localhost上运行正常,但是当我上传在线托管时,它给了我这个错误:

严格标准:只有变量才能通过引用传递给......

Ped*_*ito 8

为什么不使用pathinfo(PHP >= 4.0.3),即:

$ext = pathinfo($_FILES["rfile"]["name"])['extension'];
Run Code Online (Sandbox Code Playgroud)

现场PHP演示

http://ideone.com/eMpbnL


dog*_*ose 6

PHP end将变量的引用作为参数. http://php.net/manual/en/function.end.php

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

$exp = explode(".", $_FILES["rfile"]["name"])
$extension = end($exp);
Run Code Online (Sandbox Code Playgroud)