2 回答
TA贡献1783条经验 获得超4个赞
不知道你的php是什么版本?
我在php5.2.14下运行,没有错误提示
要注意的就是end函数的用法:mixed end ( array &array )
end的参数是一个引用,你可以参考手册end函数下面的一个用户的说明:
ken at expitrans dot com
28-Oct-2005 12:02
Please note that from version 5.0.4 ==> 5.0.5 that this function now takes an array. This will possibly break some code for instance:
<?php
echo ">> ".end(array_keys(array('x' => 'y')))."\n";
?>
which will return "Fatal error: Only variables can be passed by reference" in version <= 5.0.4 but not in 5.0.5.
If you run into this problem with nested function calls, then an easy workaround is to assign the result from array_keys (or whatever function) to an intermediary variable:
<?php
$x = array_keys(array('x' => 'y'));
echo ">> ".end($x)."\n";
?>
如果你的php版本是早期的,那么php可以自动把$filetype视为引用,传递给end函数.所以第二种写法是正确的.第一种就可能会提示:只有变量可以作为引用传递,而函数的返回值不可以动态的作为引用传递.
现在的php版本好像都可以了.
TA贡献1966条经验 获得超4个赞
这两个结果都是对的。
<?php$str="milu.jsp";$filetype=end(explode(".",$str)); echo $filetype;?> 分号回车:
<?php
$str="milu.jsp";
$filetype=end(explode(".",$str));
echo $filetype;
?>
都是对的,为什么要问这个问题
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报