您当前的位置: 首页 >  面试

苗先生的PHP记录

暂无认证

  • 4浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基础 - 面试 - PHP变量COW机制

苗先生的PHP记录 发布时间:2021-12-21 14:49:00 ,浏览量:4

,即Copy On Write

当只是变量的赋值或者定义时 , 不会开辟新的内存空间来保存相同变量值 , 比如:

$a = range(0,9999);
$b = $a;

这里b变量不会产生新的内存空间单独存储

 如果a的值发生了修改: 

$a = range(0,9999);
$b = $a ;
$a = range(0,9999);//对a的值进行了写操作 , 会开辟新的内存空间

验证自己的想法可以使用 memory_get_usage() 函数打印查看

$a = range(0,1000);
var_dump(memory_get_usage());
$b = &$a;
var_dump(memory_get_usage());

$a = range(0,1000);
var_dump(memory_get_usage());

// 结果 

int(430576)
int(430640)
int(430640)

由于b变量引用了a变量 , 当a变量发生改变后 , 继续引用新的a变量 , 直接改变当前内存空间存储的变量值, 所以没有触发COW机制

关注
打赏
1665468453
查看更多评论
立即登录/注册

微信扫码登录

0.3000s