关于func_get_args()的小错

今天帮同学部署一个小网站,用了php,还有ajax。结果在他们本机调试很好,我弄到服务器上面,就出了问题:
Fatal error: func_get_args(): Can’t be used as a function parameter in
这个很奇怪,搜了一下,貌似其实是php的一个限制(bug?),可以参见http://bugs.php.net/bug.php?id=34120
貌似是实现的问题,func_get_args()这个东西不能直接用在函数的参数里面(其实文档这么说,用作第一个参数还是可以的…… 第二个就不行了)。必须要先把它赋给一个变量,然后再作为函数参数。
For example,根据文档,这两个都不行:
a(func_get_args(0));
b(1, func_get_args(0));

但其实,第一个是可以的,第二个会出上面那个错。
改成
$x=func_get_args(0);
a($x);
b(1,$x);
就可以了。
同学说他们的php是5.3.1,服务器上是5.2.12,大概5.3搞定了这个事情吧……

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.