PHP с помощью объявления? Что такое галочка? - PullRequest
29 голосов
/ 14 марта 2010

Меня немного смущает функция PHP declare.

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

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

function myfunc() {
        print "Tick";   
}

register_tick_function("myfunc");

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

Сценарий печатает:

"Тик" 2 раза ??

Ответы [ 2 ]

23 голосов
/ 14 марта 2010

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

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

Нет блока, нет дополнительного тика.

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

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

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

16 голосов
/ 14 марта 2010

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

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

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

...