对不起,我确定这个答案在互联网上的某个地方(甚至可能是 stackoverflow),但我花了最后一个小时搜索,似乎找不到答案......
PHP 的 extract() 函数是否使用写时复制将变量添加到符号表?
我知道 PHP 函数调用默认情况下都有一个写时复制(除非您通过引用指定),只是对此感到好奇,因为我正在集成一个模板系统,所以我将一大堆变量抓取到一个 $data 数组中,它有时可能会很大,我想知道在包含模板文件之前提取它们是否是解决此问题的最佳方法。
谢谢!
编辑:
澄清:
$array = array('a' => array(1,2,3), 'b' => array(3,4,5), 'c' => array(6,7,8));
extract($array);
//is $a, $b, $c Copy-On-Write at this point? Would be a lot better performance as opposed to allocating 3 new array()'s
//I would like to avoid having this change the original $array values so using EXTR_REFS is not a good solution for me here if I can avoid it and still keep performance!
$a = array(3);