3

他们不应该让脚本使用更少的内存吗?

function a(&$var);使用更多的内存比function a($var);

foreach($array as $k => &$v)使用更多的内存比foreach($array as $k => $v)

例如$var使用 24 MB。如果我通过引用传递它,它使用 27 MB

4

1 回答 1

2

(不幸的是)无法详细解释zend引擎内部的魔力,我指的是文档

PHP 中的引用是一种通过不同名称访问相同变量内容的方法。它们不像 C 指针;例如,您不能使用它们执行指针运算,它们不是实际的内存地址,等等。有关更多信息,请参阅什么不是参考。相反,它们是符号表别名。注意在PHP中,变量名和变量内容是不同的,所以同样的内容可以有不同的名字。最接近的类比是 Unix 文件名和文件 - 变量名是目录条目,而变量内容是文件本身。引用可以比作​​ Unix 文件系统中的硬链接。

我认为与 unix 文件系统的比较很容易理解。如果一个文件有多个名称,则需要额外的内存来存储这些名称。

于 2013-03-27T02:22:23.260 回答