動かざることバグの如し

近づきたいよ 君の理想に

PHPで「Fatal error: Allowed memory size of」エラーを発生させる4行

昔のメモ整理してたら出てきたのでメモ

やり方

以下のコードを実行するとエラーになって実行が止まってしまう

<?php
$ary = [];
for ($i = 0; $i < count($ary); $i++) {
  $ary[$i] = "evil";
}
var_dump($ary);
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 134217736 bytes) in xxx.php

当時は別にFatal errorも狙って書いたわけではなくただのバグなのだが、エラーになる理由は簡単で、以下のコードでも同じエラーになるといえば察するはず

<?php
$ary = [];
for ($i = 0;; $i++) {
  $ary[$i] = "evil";
}
var_dump($ary);

つまり無限ループが発生してしまっていたわけ

なんでこんなコード書いてたんだろ。。