卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章68257本站已运行4217

PHP7 中哪些变量类型 栈 堆

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

PHP7 中哪些变量类型 栈 堆

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

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

1. 分配在栈上的变量:

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

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

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

2. 分配在堆上的变量:

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

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

总结:

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

卓越飞翔博客
上一篇: php二次开发要准备哪些
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏