不知道你的php是什么版本?我在php5.2.14下运行,没有错误提示要注意的就是end函数的用法:mixed end ( array &array )end的参数是一个引用,你可以参考手册end函数下面的一个用户的说明:ken at expitrans dot com28-Oct-2005 12:02Please 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:<?phpecho ">> ".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版本好像都可以了.