【问题标题】:PHP using Declare ? What is a tick?PHP 使用声明?什么是蜱?
【发布时间】:2011-01-27 08:12:31
【问题描述】:

我对 PHP 函数 declare 有点困惑。

究竟什么是单​​勾?我以为一个勾号等于一行代码?

但如果我使用:

function myfunc() {
        print "Tick";   
}

register_tick_function("myfunc");

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

脚本打印:

“打勾”2次??

【问题讨论】:

    标签: php declare


    【解决方案1】:

    每行都有一个勾号;和每个块{} 试试看:

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

    没有阻塞,没有额外的勾号。

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

    更多无关块 = 更多滴答声。

    PS:顺便说一句,蜱虫是一种非常奇特的功能,它们只在少数极其罕见的情况下有用。它们不等同于线程或任何东西。如果对您而言,蜱是问题的解决方案,那么您应该在另一个问题中发布您的问题,因为它可能不是正确的解决方案。

    【讨论】:

    • 刻度有什么用处?
    • @thomasrutter 怎么样?能否举个例子或参考一下?
    • pcntl_signal_dispatch();或刻度 = 1;这两种方法都允许在 php 脚本中处理信号。
    【解决方案2】:

    关于什么是滴答声,您走在正确的轨道上。

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

    简单地说,滴答声是一个特殊事件 在 PHP 内部发生的每个 执行一定次数的时间 的陈述。这些陈述是 PHP 内部和松散对应 到脚本中的语句。你 可以控制它有多少条语句 需要使用 declare() 函数,你可以 注册函数时执行 通过使用 register_tick_function() 函数。作为 已经提到过,语法为 声明是非常不寻常的,所以要准备好 震惊!

    【讨论】:

    • 谢谢。我觉得奇怪的是 php.net 手册没有在 declare() 和 *_tick_function() 函数中定义刻度。你知道为什么它们在 PHP6 中被删除了吗?
    • PHP 中的记号是怎么来的?
    • @Jayrox - 有任何支持性证据来支持您的“PHP6 刻度将被完全删除”理论吗?
    • 能否请您提供一个参考“请注意,在 PHP7 中刻度将被完全删除” ???据我所知,这不是真的。
    • PHP 7 已经发布,但仍然存在
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 2010-09-18
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多