2010-03-14 51 views
26

我對PHP函數declare有點困惑。PHP使用Declare?什麼是勾號?

單一刻度究竟是什麼?我認爲tick等於一行代碼?

但是,如果使用:

function myfunc() { 
     print "Tick"; 
} 

register_tick_function("myfunc"); 

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

腳本打印:

「嘀」 2個時代?

回答

22

你會得到每行的勾號;每塊{} 試一下:

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

沒有塊,沒有多餘的蜱。

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

更多無關塊=更多滴答聲。 PS:順便說一下,蜱是相當奇特的功能,它們只在極少數情況下有用。它們不等同於線程或任何東西。如果對你來說,蜱是問題的解決方案,那麼你應該在另一個問題上提出你的問題,因爲它可能不是正確的解決方案。

+11

什麼*可* *刻度可用於? – Pacerier 2013-07-05 14:26:27

+1

調試過程中的分析代碼。 – thomasrutter 2013-12-23 09:25:43

+0

@thomasrutter如何?你能舉個例子還是參考? – tonix 2016-06-22 06:53:40

14

你正處在正確的軌道上,它是什麼。

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

簡單地說,蜱是,PHP內部發生已執行的語句一定數量 每個 一次特殊事件 。這些語句是PHP內部的 ,並且與腳本中的語句鬆散地對應 。您 可以控制它 需要多少語句中使用的 聲明()函數來襯托打勾,你可以當 蜱使用 register_tick_function()函數發生 寄存器的功能來執行。由於 已經提到, 聲明的語法非常不尋常,所以準備好 以備不時之需!

+1

謝謝。我發現奇怪的是,php.net手冊沒有在declare()和* _tick_function()函數中定義tick。你知道他們爲什麼在PHP6中被刪除嗎? – David 2012-09-11 16:03:36

+1

蜱如何進入PHP? – Pacerier 2013-07-05 14:27:38

+0

@Jayrox - 支持您的聲明的任何支持性證據「PHP6 ticks將被徹底刪除」理論? – Jimbo 2013-09-13 09:39:17