当前位置:  开发笔记 > 编程语言 > 正文

为什么PHP允许在一种情况下将文字传递给pass-by-reference参数而不允许其他情况?

如何解决《为什么PHP允许在一种情况下将文字传递给pass-by-reference参数而不允许其他情况?》经验,为你挑选了0个好方法。

该函数array_shift()通过引用获取一个参数.传递数组文字会导致致命错误:

$ php -r'var_export(array_shift(array("Test#0"));'; echo

致命错误:在第1行的命令行代码中,只能通过引用传递变量

这按预期失败.但是,当使用call_user_func_array调用函数时,PHP表现得很奇怪:



执行时:

$ php test.php

'测试#1'

警告:参数1到array_shift()应该是一个引用,在第6行的/Users/kcc/test.php中给出的值NULL

警告:参数1到array_shift()应该是一个引用,在第10行的/Users/kcc/test.php中给出的值NULL

可以理解的是call_user_func_array(),不会触发致命错误,但为什么第一种形式可以正常工作呢?

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有