深入理解php原理之变量分离/引用
2013-09-25 12:19
996 查看
<?php
$var = "laruence";
$var_dup = $var;
$var = 1;
?>
很明显在这段代码执行以后,$var_dup的值应该还是”laruence”, 那么这又是怎么实现的呢?
这就是PHP的copy on write机制:
PHP在修改一个变量以前,会首先查看这个变量的refcount,如果refcount大于1,PHP就会执行一个分离的例程, 对于上面的代码,当执行到第三行的时候,PHP发现$var指向的zval的refcount大于1,那么PHP就会复制一个新的zval出来,将原zval的refcount减1,并修改symbol_table,使得$var和$var_dup分离(Separation)。这个机制就是所谓的copy on write(写时复制)。
$var = "laruence";
$var_dup = $var;
$var = 1;
?>
很明显在这段代码执行以后,$var_dup的值应该还是”laruence”, 那么这又是怎么实现的呢?
这就是PHP的copy on write机制:
PHP在修改一个变量以前,会首先查看这个变量的refcount,如果refcount大于1,PHP就会执行一个分离的例程, 对于上面的代码,当执行到第三行的时候,PHP发现$var指向的zval的refcount大于1,那么PHP就会复制一个新的zval出来,将原zval的refcount减1,并修改symbol_table,使得$var和$var_dup分离(Separation)。这个机制就是所谓的copy on write(写时复制)。
相关文章推荐
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量分离/引用
- 深入理解PHP原理之变量分离/引用(Variables Separation)
- 从底层原理深入理解 PHP 的引用 “&”
- 深入理解PHP原理之变量(Variables inside PHP)
- 深入理解PHP原理之变量作用域
- 深入理解PHP原理之变量(Variables inside PHP)
- 深入理解PHP原理之变量 【转自(风雪之隅)】
- 浅析PHP原理之变量分离/引用(Variables Separation)
- 深入理解PHP原理之变量(Variables inside PHP)
- 深入理解PHP原理之变量作用域(Scope in PHP)
- 深入理解PHP原理之变量结构
- 深入理解PHP变量的值类型和引用类型
- 深入理解PHP原理之变量生命期(一)
- 深入理解PHP原理之变量(Variables inside PHP)
- 深入理解PHP原理之变量(Variables inside PHP)