PHP с помощью Declare? Что такое тик?

Я немного запутался в функции 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 (). Как уже упоминалось, синтаксис для объявления очень необычен, поэтому будьте готовы к шоку!