我随机发现了以下内容:
<?php
declare(ticks=1);
// using a function as the callback
register_tick_function('my_function', true);
// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>
Run Code Online (Sandbox Code Playgroud)
哪个可以在register_tick_function找到.
我想知道在php中使用这个是否阻止?
编辑: 我的意思是,如果我在同一个线程上启动了多个php tick运行它能够在后台处理IO而其他滴答运行或是否需要等待每个滴答来控制?
Tick 函数是阻塞的。PHP 通常不(原生)支持同一请求中的并行执行。所以不,你将无法在后台处理 IO 或类似的事情。
ticks 的作用或多或少是在每个语句之后插入对 tick 函数的调用。所以你得到的是这样的:
tick();
$a = 1;
tick();
$b = 2;
tick();
// ...
Run Code Online (Sandbox Code Playgroud)
它的行为就像那样:)
不过,只是为了让您了解这是否真的很重要:当在 JS 中执行回调时(例如超时/事件被触发),那么它就像阻塞一样。