gpt4 book ai didi

php - 我可以提取函数返回值吗?

转载 作者:可可西里 更新时间:2023-10-31 22:47:05 27 4
gpt4 key购买 nike

我注意到在 PHP 中 extract(some_function()); 将像这样工作:

$stuff = some_function();
extract($stuff);

但是在 PHP 的文档中,extract 函数参数前面有 & 东西,据我所知,这意味着您必须向它传递一个变量。

最佳答案

如果文档是正确的,这将产生严格的标准信息:

PHP Strict standards: Only variables should be passed by reference

所以我认为您刚刚在文档中发现了一个错误。恭喜。

编辑

如果您将它与 EXTR_REFS 作为第二个参数一起使用,它仍然不会报错:

~❯ php -a
Interactive shell

php > function a(){return array('pwet'=> 42);}
php > extract(a(), EXTR_REFS);
php > echo $pwet;
42

这很奇怪,因为引用函数内定义的变量对我来说意义不大。我认为 & 可能是因为这个选项而引入的,但只出现在文档中,并没有在代码中强制执行。

编辑

看来我是对的,我在 ext/standard/array.c(分支 5.3 和 5.4)中找到了这个注释:

/* var_array is passed by ref for the needs of EXTR_REFS (needs to
* work on the original array to create refs to its members)
* simulate pass_by_value if EXTR_REFS is not used */

关于php - 我可以提取函数返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com