Подтвердить что ты не робот

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

Я немного смущен функцией PHP declare.

Что такое единственный тик? Я думал, что галочка равна одной строке кода?

Но если я использую:

function myfunc() {
        print "Tick";   
}

register_tick_function("myfunc");

declare(ticks=1) {
   echo 'foo!bar';
}

script печатает:

"Tick" 2 раза

4b9b3361

Ответ 1

Вы получаете галочку для каждой строки; и каждый блок {} Попробуйте следующее:

declare(ticks=1) echo 'foo!bar';

Без блока, без дополнительной отметки.

declare(ticks=1) {{ echo 'foo!bar'; }}

Больше посторонних блоков = больше тиков.

PS: Кстати, тики - довольно экзотическая особенность, и они полезны только в нескольких крайне редких ситуациях. Они не эквивалентны нитью или чем-то еще. Если для вас тики - это решение проблемы, тогда вы должны опубликовать информацию о своей проблеме в другом вопросе, потому что это, вероятно, не правильное решение.

Ответ 2

Вы находитесь на правильном пути относительно того, какой тик есть.

http://www.tuxradar.com/practicalphp/4/21/0

Проще говоря, тик - это особое событие которое происходит внутри PHP раз он выполнил определенное число заявлений. Эти утверждения внутренне к PHP и свободно соответствовать к утверждениям в вашем script. Вы может контролировать количество заявлений принимает, чтобы установить галочку, используя declare(), и вы можете регистрировать функции для выполнения, когда тик происходит с помощью register_tick_function(). В виде уже упомянутый синтаксис для объявить очень необычно, поэтому будьте готовы для шока!