1

我想知道 PHP 是否内置了这种优化。通常,当您在不使用引用的情况下调用 foreach 时,它会复制传递的数组并对其进行操作。如果对该数组的引用计数仅为 1 会发生什么?

例如,如果 getData 返回一些数据数组。

foreach(getData() as $data)
    echo $data;

由于 getData() 返回的数组只有一个引用,它不应该只是被引用使用而不是先复制还是 php 没有这种优化?

这似乎是一个简单的优化,可以帮助很多写得不好的代码。

4

1 回答 1

4

我不能肯定地说,但 PHP 通常使用“写入时复制”,所以在您尝试写入之前,所有内容都是参考,此时会制作副本并写入副本。

于 2008-10-23T18:34:18.913 回答