在PHP中嵌套函数

Ame*_*eer 5 php

简单的PHP问题:

为什么这样做,

$exclude_exts = array('js', 'css',);
$filename = "test.css";
$ext = explode('.',$filename);
$is_excluded = in_array(strtolower(array_pop($ext)), $exclude_exts);
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

$exclude_exts = array('js', 'css',);
$filename = "test.css";
$is_excluded = in_array(strtolower(array_pop(explode('.',$filename))), $exclude_exts);
Run Code Online (Sandbox Code Playgroud)

编辑:两者都曾用于以前版本的PHP(我忘了哪个版本).

Ale*_*son 10

因为array_pop需要引用,因为它会在适当的位置改变数组.当你传递返回值时,explode没有变量可供参考.

  • 目前正在测试它是否曾在以前的版本中运行过 - http://3v4l.org/4I9Xh#tabs - 看起来它在PHP 5.0.5之前有效; 但从那时起就发出了严格的标准警告 (4认同)