PHP崩溃与太多的对象
描述:
下面的testing脚本可以正常工作10次,但是崩溃(分段错误)400000次迭代,而不会崩溃。
在Docker上使用Php 7.2(版本17.09.0-ce-mac35(19611)),没有扩展名。
testing脚本:
<?php class Lim { public $id; public $inv; public $fi; function __construct($id) { $this->id = $id; $this->inv = new Inv($this); } }; class Inv { public $inv; public $fi; function __construct($inv) { $this->inv = $inv; } } $max = 400000; //$max = 10; $lim0 = new Lim(0); $limp = $lim0; for ($i=1; $i<$max; $i++) { $lim = new Lim($i); $lim->fi = $limp->inv; $limp->inv->fi = $lim; $limp = $lim; }
有没有人有一个想法,为什么? 谢谢
你正在创造一个新的$lim
而不是摧毁旧的。 所以你的内存不足了
添加这个
unset($lim);
后
$limp = $lim;