在 php7 中,变量分配在栈或堆上取决于类型和作用域。分配在栈上的变量包括基本数据类型、枚举类型和栈可分配对象,而分配在堆上的变量包括对象、数组、引用、资源和 php 7.4 之前的不可变对象。
PHP7 中分配在栈和堆上的变量类型:
PHP7 中,变量可以分配在栈或堆上,具体取决于变量的类型和作用域:
1. 分配在栈上的变量:
基本数据类型(int、float、bool、string)
枚举类型
栈可分配对象(小的不可变对象,在 PHP 7.4 引入)
栈上的变量在函数调用时会被压栈,并在函数返回时出栈。它们的大小固定且已知,因此分配速度快且内存开销小。
立即学习“PHP免费学习笔记(深入)”;
2. 分配在堆上的变量:
对象
数组
引用
资源
不可变对象(PHP 7.4 之前)
堆上的变量是在堆内存中分配的,分配大小不固定,根据需要动态分配。堆上的变量在函数调用时不会压栈,而是通过引用进行访问。它们的大小不固定,因此分配速度慢且内存开销大。
总结:
简单来说,PHP7 中分配在栈上的变量大小固定且已知,包括基本数据类型和栈可分配对象。分配在堆上的变量大小不固定,包括对象、数组、引用、资源和不可变对象(PHP 7.4 之前)。
以上就是PHP7 中哪些变量类型 栈 堆的详细内容,更多请关注至强加速其它相关文章!
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/28784.html