【问题标题】:how can i set a tick_func() for all functions? [closed]如何为所有函数设置一个 tick_func()? [关闭]
【发布时间】:2011-06-10 16:31:09
【问题描述】:

如何为所有功能

设置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.

【问题讨论】:

  • 我要减速到1000以上,function.... function sample_handler(){ if function sleep(1); }
  • 您是否在每次调用任何其他函数后都尝试执行all_func_sleep()

标签: php


【解决方案1】:

根据您提供的信息,我能想到的只是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 下面所说的,这将在每个语句之后调用,而不是在函数调用时调用,但如果您最大限度地减少 register... 和 unregister_tick_function() 调用之间的代码量,您可以近似此功能。

【讨论】:

  • 我不熟悉蜱虫,the PHP docs 没有提供出色的示例。这做什么,究竟是什么?
  • 提供更多信息here(指向here
  • @Problematic:有趣的功能。我认为它相当 不符合 OP 的要求,因为它似乎会在每个语句而不是每个函数调用之后运行,但是,考虑到不清楚的问题,谁知道呢? +1
  • @Matchu:是的,但如果他需要做的工作量有限,并且可以将其放入循环中(甚至只是程序上),他可以使用@987654326 来界定工作空间@。我会更新答案以反映这一点。
  • 是在声明区域内调用的函数内部的语句上运行滴答声,还是仅在堆栈的最外层运行?
【解决方案2】:

鉴于您的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();

达达。不是很漂亮,但很清晰。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2021-02-21
    • 2015-10-07
    相关资源
    最近更新 更多