Это случай бесконечной рекурсии, но это не конкретная причина.Это переполнение стека .Когда у вас есть рекурсия, бесконечная или нет, существует максимальная глубина, которую вы можете использовать (добавить в стек) в зависимости от размера вашего стека (в байтах).
Технически это бесконечно, но вы не получите никаких ошибок в течение долгого времени:
<?php
function f(){
sleep(1);
return f();
}
f();
То, что вам нужно, известно как base case
в вашей рекурсии для остановкидо того, как он займет весь стек.
<?php
function f($i){
if($i == 10)
return;
echo $i;
return f(++$i);
}
f(0);
, который будет печатать от 0 до 9.
Ошибка segmentation fault
поступает из операционной системы, сообщая, что приложение PHP обнаружило проблемудобавление в стек.Это не попадет в ваш сценарий, потому что на системном уровне двоичный файл, который составляет PHP, потерпел неудачу.