Heim  >  Artikel  >  Backend-Entwicklung  >  php变量的引用计数器和写时复制

php变量的引用计数器和写时复制

WBOY
WBOYOriginal
2016-08-08 09:19:291079Durchsuche

众所周知,PHP是不支持指针的,但是如果希望两个变量同时指向同一内存块怎么办呢?为了解决这个问题,PHP内核里使用了引用计数器。
上篇博文介绍了PHP变量在内核中的存储方式了,zval结构中下面两个成员变量用于引用计数器:

<code>is_ref  BOOL值,标识变量是否是引用集合。
refcount  计算指向引用集合的变量个数。
</code>

看下面的php代码

<code><?php $a = "this is a";
?>
</code>

一个zval结构的实体称为zval容器。在php语言层创建一个变量就会相应地在php内核中创建一个zval容器。因为上面的代码创建了一个变量$a,所以在php内核中会创建一个zval容器;又因为这个变量不是一个引用,所以zval容器的is_ref等于FALSE,并且refcount等于1.
再看下面的代码

<code><?php $a = "this is a";
    $b=$a;
?>
</code>

上面这段代码创建了两个变量a

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了php变量的引用计数器和写时复制,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php函数注释Nächster Artikel:web网络请求过程_PHP版待更新)