海印网
海印网

PHP7 中哪些变量类型 栈 堆

admin数码00

在 php7 中,变量分配在栈或堆上取决于类型和作用域。分配在栈上的变量包括基本数据类型、枚举类型和栈可分配对象,而分配在堆上的变量包括对象、数组、引用、资源和 php 7.4 之前的不可变对象。

PHP7 中哪些变量类型 栈 堆-第1张图片-海印网

PHP7 中分配在栈和堆上的变量类型:

PHP7 中,变量可以分配在栈或堆上,具体取决于变量的类型和作用域:

1. 分配在栈上的变量:

  • 基本数据类型(int、float、bool、string)
  • 枚举类型
  • 栈可分配对象(小的不可变对象,在 PHP 7.4 引入)

栈上的变量在函数调用时会被压栈,并在函数返回时出栈。它们的大小固定且已知,因此分配速度快且内存开销小。

立即学习“PHP免费学习笔记(深入)”;

2. 分配在堆上的变量:

  • 对象
  • 数组
  • 引用
  • 资源
  • 不可变对象(PHP 7.4 之前)

堆上的变量是在堆内存中分配的,分配大小不固定,根据需要动态分配。堆上的变量在函数调用时不会压栈,而是通过引用进行访问。它们的大小不固定,因此分配速度慢且内存开销大。

总结:

简单来说,PHP7 中分配在栈上的变量大小固定且已知,包括基本数据类型和栈可分配对象。分配在堆上的变量大小不固定,包括对象、数组、引用、资源和不可变对象(PHP 7.4 之前)。

以上就是PHP7 中哪些变量类型 栈 堆的详细内容,更多请关注其它相关文章!

Tags: 变量分配

Sorry, comments are temporarily closed!