Pull to refresh

Comments 11

Небольшая ошибка в первом куске кода.
Fatal error: Cannot redeclare end() in .../test.php on line 3
Исправил на другое имя, т.к. не проверял код. Спасибо.
UFO just landed and posted this here
Расскажите это программистам JS.
В JS видимость таких функций ограничена «родительской» функцией, а в php такая функция становится глобальной. Это большая разница
У JS и PHP активный обмен опытом: в PHP объявляют вложенные функции, в React пишут HTML среди кода
То, что вы описали, часто используется в компонентах Joomla например
Компонент должен работать и в 1.5 и в 2.5, но в 2.5 удалили функцию, которая была в 1.5 или ее переименовали, и она используется в этом компоненте
Для этого и пишутся там такие хаки, которые по требованию создают нужную функцию
Ничего в этом хорошего нет, но это ведь legacy code :)
Подобный код часто встречается в библиотеках мечтающих о mbstring, в автолоадере проверяется наличие нужных mb_* функций и если что-то отсутствует — объявляется свой костылёк
Должен покаяться: применял такую практику для array_map, usort и т.д., когда еще не было анонимных функций.
После их введения о таком забыл.

P.S.
Речь только о РНР.
Как каз сегодня пришлось писать curl_reset внутри функции класса что бы заработал сторонний компонент. Что удобно, функция создается только в том случае, если не была определена. Так что функционал должен присутствовать.
Sign up to leave a comment.

Articles