PHP变量内存分配
2015-09-15 10:55
477 查看
1、php中的变量都存放在zval的变量容器中。zval的结构如下表所示:
其中类型:为变量类型,值:为变量的值,is_ref是bool值,变量是否有别名,如果有则为true,refcount:引用此变量的变量个数。当refcount为1时,is_ref为false。
2、将一个变量 赋值给另一个变量时(例如:$a=$b),不会立即为新变量$a分配内存空间,而是在原变量$b的zval中给refcount加1。 只有当原变量或者发生改变时,才会为新变量分配内存空间,同时原变量的refcount减
1 。当然,如果unset原变量,新变量直接就使用原变量的zval而不是重新分配。&引用赋值时,原变量的is_ref 变为1,refcount 加1. 如果给一个变量&赋值,会为$a变量分配空间。
类型 | 值 | is_ref | refcount |
2、将一个变量 赋值给另一个变量时(例如:$a=$b),不会立即为新变量$a分配内存空间,而是在原变量$b的zval中给refcount加1。 只有当原变量或者发生改变时,才会为新变量分配内存空间,同时原变量的refcount减
1 。当然,如果unset原变量,新变量直接就使用原变量的zval而不是重新分配。&引用赋值时,原变量的is_ref 变为1,refcount 加1. 如果给一个变量&赋值,会为$a变量分配空间。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- 解析C语言中位字段内存分配的问题
- C语言编程中分配内存空间的相关函数