PHP7: функции → опкоды
Как известно, в ПХП7 некоторые функции будут заменены на опкоды для ускорения работы. Вызов функции — дорогая операция в этом интерпретаторе, а опкоды — дёшевы. Я заглянул в исходные коды (см. функцию zend_try_compile_special_func, если интересно) и нашёл там список функций, которые заменяются в текущей версии «семёрки».
Это strlen, все функции is_* (is_float, is_string и прочие), defined, call_user_func_array, call_user_func и assert.
Комментарии 15
И ещё: есть оптимизация опкода на предмет констаного не исполнения блока?
Пример: if( false ){ тут
Во втором случае, значение константы известно (скажем глобал или константа класса), соответственно или then или else часть можно выкинуть как неисполняемую (если она есть), а вместе с ней и лишнее ветвление.