Heim > Backend-Entwicklung > PHP-Tutorial > php static变量的refcount为何是2,is_ref为何是1?

php static变量的refcount为何是2,is_ref为何是1?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:33:23
Original
1461 Leute haben es durchsucht

<code><?php $a = 1;
    xdebug_debug_zval("a");
    static $b = 1;
    xdebug_debug_zval("b");
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

为何执行后输出是
a: (refcount=1, is_ref=0)=1
b: (refcount=2, is_ref=1)=1
static变量和普通变量为何会有这样的区别?

回复内容:

<code><?php $a = 1;
    xdebug_debug_zval("a");
    static $b = 1;
    xdebug_debug_zval("b");
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

为何执行后输出是
a: (refcount=1, is_ref=0)=1
b: (refcount=2, is_ref=1)=1
static变量和普通变量为何会有这样的区别?

refcount是计数次数,如果为0 就是被销毁
如果用Unset 这个数会减1
is_ref是表示引用
猜想:这表变量里的内容是另一个内存地址(也就是真实的内容),然后unset只会删除这个变量,并不会删除这个内存地址里面的东西
http://php.net/manual/zh/features.gc.refcounting-basics.php

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage