Интересно, что в моей среде кажется, что segfault возникает, когда приходит время деконструировать объекты - код, помещенный после того, как цикл работает нормально. Это происходит только тогда, когда PHP начинает отключаться, и происходит сбой.
Вы можете сообщить об ошибке , но вы можете обнаружить, что сопровождающие PHP не сделают все возможное, чтобы поддержать подобные вещи. Я видел, по крайней мере, одно сообщение об ошибке утечки памяти, в которой официальный ответ был по сути «Wontfix: память освобождается после рендеринга страницы, так что это не имеет большого значения», что фактически подразумевает использование вне простого Случай быстрого рендеринга веб-страницы и ее прекращения на самом деле не поддерживается.
После 5 лет полной разработки PHP я пришел к простому правилу: если он ломает PHP, не делайте этого. PHP имеет свои ограничения, и вы окажетесь наиболее успешными, если не будете выходить за эти пределы.
Это означает, что нужно избегать create_function()
в PHP <= 5.2 (это приводит к потере памяти как сумасшедшему). Вы можете попробовать использовать <code>create_function() для использования PHP, как если бы это был функциональный язык. Это не так, и вы обнаружите, что он терпит неудачу, если попытаетесь использовать его как таковой.
Так что, если PHP душит вложенные объекты глубиной 40000 уровней ... не вкладывайте объекты глубиной 40000 уровней. Одна из возможных альтернатив - использование массивов вместо объектов, но это звучит довольно отвратительно.