PHP变量内存分配

1、php中的变量都存放在zval的变量容器中。zval的结构如下表所示:

类型is_refrefcount
其中类型:为变量类型,值:为变量的值,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变量分配空间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值