PHP的垃圾回收机制是怎样的?

巴扎黑
Freigeben: 2016-11-08 10:55:17
Original
943 Leute haben es durchsucht

   描述:PHP使用引用计数(reference counting)垃圾回收(garbage collection)机制,每个对象都内含一个引用计数器,每当一个引用连接到对象时,计数器加1,当reference离开生成空间或被设置为NULL是,计数器减1,。当某个对象的引用计数器为0时,PHP引擎知道你将不再需要这个对象,释放其所占的内存空间。

        &操作是指针吗?

        不是,&操作是建立了引用指向,不是指针,PHP没有指针的概念。类似于UNIX的文件软链接。

        Unset()操作和赋 null值操作的区别?

        (a)Unset()只是断开这个变量对它原先指向的内存的引用,使变量本身成为没有定义过的空引用,并且使那块内存在符号表中引用计数减1,并没有影响到其他指向这块内存的变量。所以在调用这个unset()的变量时发出了Notice。(对一个变量unset多次只有第一次起作用)

        (b)赋值null操作相当猛,它会直接将变量缩指向的内存在符号表中的引用计数置0,那块内存自然被引擎回收了,至于何时被再次利用不得而知。可能马上就被用作存储别的信息,也许再也没有使用过。但无论如何,原来所有指向那块内存的变量都无法再操作被回收的内存了,任何试图调用它的变量都讲返回null。

          只有当一块内存在符号表中的引用计数为0 时,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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!