在 php7 中,变量分配在栈或堆上取决于类型和作用域。分配在栈上的变量包括基本数据类型、枚举类型和栈可分配对象,而分配在堆上的变量包括对象、数组、引用、资源和 php 7.4 之前的不可变对象。
PHP7 中分配在栈和堆上的变量类型:
PHP7 中,变量可以分配在栈或堆上,具体取决于变量的类型和作用域:
1. 分配在栈上的变量:
- 基本数据类型(int、float、bool、string)
- 枚举类型
- 栈可分配对象(小的不可变对象,在 PHP 7.4 引入)
栈上的变量在函数调用时会被压栈,并在函数返回时出栈。它们的大小固定且已知,因此分配速度快且内存开销小。
立即学习“PHP免费学习笔记(深入)”;
2. 分配在堆上的变量:
- 对象
- 数组
- 引用
- 资源
- 不可变对象(PHP 7.4 之前)
堆上的变量是在堆内存中分配的,分配大小不固定,根据需要动态分配。堆上的变量在函数调用时不会压栈,而是通过引用进行访问。它们的大小不固定,因此分配速度慢且内存开销大。
总结:
简单来说,PHP7 中分配在栈上的变量大小固定且已知,包括基本数据类型和栈可分配对象。分配在堆上的变量大小不固定,包括对象、数组、引用、资源和不可变对象(PHP 7.4 之前)。
以上就是PHP7 中哪些变量类型 栈 堆的详细内容,更多请关注其它相关文章!
Article Links:https://www.hinyin.com/n/144407.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。