【发布时间】:2012-12-15 19:41:45
【问题描述】:
extract(some_function_that_returns_array());
工作正常。
但是在 php.net 上它说第一个参数必须是一个引用变量:http://php.net/manual/en/function.extract.php。是不是搞错了?
所以
function foo(&$array){}
function lol(){ $arr = array(); return $arr; }
foo(lol());
显示“严格标准:只有变量应该在...中通过引用传递”
extract 不会发生这种情况
【问题讨论】:
-
请将此视为错误并报告。一个相关的错误可能是:bugs.php.net/bug.php?id=55222 一个相关的问题可能是:stackoverflow.com/q/6726589/367456
-
好吧,我并不关心它,但它表明手册不可信 :P 如果
die()杀死我们而不是脚本怎么办? :( -
哈哈,放轻松。你不能总是相信文档。顺便说一句,无论信任意味着什么,我想这个小缺陷不会杀死你,对吧?如果您不在乎,请不要问。
-
如果您认为文档中的某些内容可以改进,我们鼓励大家进行修复:edit.php.net/?project=PHP。
-
这里有一些相关的 bugs.php.net/bug.php?id=55754(它解释了一个 zend 引擎标志 - 并向我们展示了 zend 引擎所做的“首选引用”和“需要引用”的区别)