如何为所有函数设置tick_func()?

时间:2011-06-10 16:31:10

标签: php

如何为所有功能设置 tick_func

function tick_func(){    //for all func,
  sleep(1);
}

//sample function    
call_any_func();              // this will wait 1 sec.
call_another_func();          // this will wait 1 sec.

2 个答案:

答案 0 :(得分:4)

除了这篇文章之外你还有new post,我想我得到你想做的事:在整个剧本中其他所有函数之前或之后运行一个函数。

PHP不提供此功能。您必须在要影响的任何功能的开头或结尾处手动键入此函数调用。

<?php
function some_func_sleep() {
    sleep(1);
}

function call_any_func() {
    some_func_sleep();
    // whatever you actually want it to do
}

function call_another_func() {
    some_func_sleep();
    // whatever other thing you want it to do
}

call_any_func();
call_another_func();
塔达。它并不完美,但很明显。

答案 1 :(得分:4)

根据您提供的信息,我所能指出的只是register_tick_function()可能是您要做的事情:

declare(ticks=1);

// using a function as the callback
register_tick_function('all_func_sleep', true);

// your code here...

unregister_tick_function('all_func_sleep');

正如Matchu在下面所说,这将在每个语句之后调用,而不是在函数调用之后,但是如果你最小化寄存器...和unregister_tick_function()调用之间的代码量,你可以近似这个功能。