php代码中的行为不一致

时间:2014-01-29 05:10:24

标签: php codeigniter function asynchronous

我编写了一个函数来帮助我处理 CodeIgniter 中文件的事务。 今天我正在尝试这段代码:

function($db_trans_func, $context){
    if(is_callable($db_trans_func)){
        $context = $db_trans_func($context);
        FirePHP_::info_(time(), "After Db trans");
    }
}

这只是我帮手的片段。但问题是,当这段代码运行时,如果发生函数$db_trans_func的执行需要花费更多的时间来运行,那么php会在行结束之前传递给下一个代码FirePHP_::info_($context, "From db transaction");

对我来说这是不正常的。因为在正常情况下,这些线应该一个接一个地运行。

任何人都可以帮我解决这个问题吗?我怎么能告诉php不运行

FirePHP_::info_(time(), "After Db trans");

之后:

$context = $db_trans_func($context);

完成执行?

1 个答案:

答案 0 :(得分:0)

我不完全清楚,但我的假设是:

  • db_trans_func正在针对数据库运行某些功能(例如设置事务开始)
  • 你正在比较php函数FirePHP _ :: info_(time(),“After Db trans”);与db中记录的时间相似,或类似的

换句话说,你有一个功能,它首先在php中激活,然后是第二个。它们连续运行;但是,DB结果需要更长的时间,因此之后会看到db效果。换句话说,这些是异步运行的不同线程

这对你有意义吗?有可能吗?