... этом он использовал
для реализации цикла ... рассматривал альтернативы
. Я очень ...
Igor Wiedler написал простенькую функцию retry, которая повторяет выполнение коллбека до получения успешного результата или достижения заданного количества неудач. При этом он использовал goto для реализации цикла. Когда его спросили, а почему goto, а не, скажем, рекурсия, он неожиданно очень подробно и интересно ответил. Ниже приводится перевод его ответа.
Конечно же, я рассматривал альтернативы
goto
. Я очень подробно их изучил, и рад представить вам результаты.
Когда парсер PHP читает исходник, код компилируется в последовательность опкодов, которая затем будет выполнена движком Zend (tm) ®. Компилятор выполняет кое-какие оптимизации, но вообще он довольно тупой. Поэтому, в зависимости от написанного вами кода он будет генерировать разные опкоды. Это напрямую влияет на производительность.
Существует несколько способов написать цикл. Начнём с упомянутого вами — рекурсии.
Читать дальше →