他们不应该让脚本使用更少的内存吗?
function a(&$var);
使用更多的内存比function a($var);
并foreach($array as $k => &$v)
使用更多的内存比foreach($array as $k => $v)
例如$var
使用 24 MB。如果我通过引用传递它,它使用 27 MB
(不幸的是)无法详细解释zend引擎内部的魔力,我指的是文档:
PHP 中的引用是一种通过不同名称访问相同变量内容的方法。它们不像 C 指针;例如,您不能使用它们执行指针运算,它们不是实际的内存地址,等等。有关更多信息,请参阅什么不是参考。相反,它们是符号表别名。注意在PHP中,变量名和变量内容是不同的,所以同样的内容可以有不同的名字。最接近的类比是 Unix 文件名和文件 - 变量名是目录条目,而变量内容是文件本身。引用可以比作 Unix 文件系统中的硬链接。
我认为与 unix 文件系统的比较很容易理解。如果一个文件有多个名称,则需要额外的内存来存储这些名称。