Я немного запутался в функции PHP declare
.
Что такое единый тик? Я думал, что тик равен одной строке кода?
Но если я использую:
function myfunc() { print "Tick"; } register_tick_function("myfunc"); declare(ticks=1) { echo 'foo!bar'; }
Сценарий печатает:
«Тик» 2 раза?
Вы получаете галочку для каждой строки; и каждый блок {} Попробуйте:
declare(ticks=1) echo 'foo!bar';
Никакого блока, никаких дополнительных тиков.
declare(ticks=1) {{ echo 'foo!bar'; }}
Больше посторонних блоков = больше тиков.
PS: Кстати, тики – довольно экзотическая особенность, и они полезны только в нескольких крайне редких ситуациях. Они не эквивалентны нитью или чем-то еще. Если для вас тики – это решение проблемы, тогда вы должны опубликовать свою проблему в другом вопросе, потому что это, вероятно, не правильное решение.
Вы на правильном пути относительно того, что такое тик.
http://www.tuxradar.com/practicalphp/4/21/0
Проще говоря, тик – это специальное событие, которое происходит внутри PHP каждый раз, когда оно выполнило определенное количество операторов. Эти утверждения являются внутренними по отношению к PHP и слабо соответствуют операциям в вашем скрипте. Вы можете контролировать, сколько операторов требуется, чтобы установить галочку с помощью функции declare (), и вы можете регистрировать функции для выполнения, когда галочка возникает с помощью функции register_tick_function (). Как уже упоминалось, синтаксис для объявления очень необычен, поэтому будьте готовы к шоку!