PHP умирает разными способами

Увлёкся изучением PHP; это весело, рекомендую. Лично я писал на нём на первой работе. Со временем всё плохое подзабылось — не пора ли вспомнить...

Нормальное исполнение скрипта — код завершения ноль:

> echo "<?php ;" | php; echo $?
0

Случился die — код завершения всё ещё ноль:

> echo "<?php die();" | php; echo $?
0

Не то что ожидает среднестатистический программист в вакууме. Ну-у, допустим. Но вот исключение даёт уже код 255:

> echo "<?php throw new Exception();" | php; echo $?
255

Весело там у вас.

А что если синтаксическая ошибка?

> echo "<?php bad" | php; echo $?
PHP Parse error:  syntax error, unexpected end of file in Standard input code on line 2
255

Опять 255. Ошибка синтаксиса или ошибка исполнения — вобще нет разницы.

Фрукт — фрукт. Сиська — сиська. То же самое, мать твою! (с)

Для сравнения, Perl:

> echo '0 or die' | perl; echo $?
Died at - line 1.
9

> echo '%%%' | perl; echo $?
syntax error at - line 1, at EOF
255