php多个调用多个函数

php多个调用多个函数,php,function,cakephp,Php,Function,Cakephp,我有以下功能 function a ($var) { somecode; b($var); } function b ($var) { c($var); } function c($var) { } 然后假设我在脚本中调用这些函数 a(1); a(2); 例如,在java等编程语言中,通常的执行顺序是a(1)执行,然后b(1)执行,然后c(1)执行,然后a(2)执行,然后b(2)执行,然后c(2)执行。这意味着直到a(1)调用的所有函数完成执行后,a(2)才被调用,而a(1)调用的所

我有以下功能

function a ($var) {
somecode;
b($var);

}

function b ($var) {
c($var);
}

function c($var) {

}
然后假设我在脚本中调用这些函数

a(1);
a(2);
例如,在java等编程语言中,通常的执行顺序是a(1)执行,然后b(1)执行,然后c(1)执行,然后a(2)执行,然后b(2)执行,然后c(2)执行。这意味着直到a(1)调用的所有函数完成执行后,a(2)才被调用,而a(1)调用的所有函数都会调用其他函数。 但在php中,它不是这样的。在php中,它可能是这样的:a(1)然后b(1)然后a(2)然后c(1)。如何确定
a(2)直到a(1)和a(1)可能调用的所有函数完成执行后才被调用?顺便问一下,我用autorender=false调用cakephp中的函数,cakephp对此负责吗?

PHP按顺序运行,就像您给出的其他示例一样。没有不同的顺序,也没有什么特殊的事情需要你去做。我不这么认为。它是按顺序运行的。我有点困惑,所以我检查了一下自己(让心跳平静下来):


试着调试你的代码!函数a($var){echo'函数a和:',$var,
;b($var);}函数b($var){echo'函数b和:',$var,
;}它的工作方式也应该和您想要的完全一样,因为PHP是自上而下运行的。这很可能是您的代码中的一个问题。那么,“somecode”可能包括像ajax这样的异步函数吗?如果是这样,那么您需要使用回调函数。@GolezTrol-单词使用错误。我的目标是你的答案。今天压力很大!我很抱歉。我调试了代码,它是用cakephp编写的,它没有按照所需的顺序运行。代码内部是插入查询,所以当我调试时,我注意到了一个问题:您在那里调用ajax来获取数据吗?我的意思是插入数据:)我认为您的测试是错误的。如果您有这样的代码,它应该按顺序运行。唯一可能的例外是开始分叉/线程化,但这是高级领域,尤其是在PHP中。如果发生这种情况,它会发生在
'somecode'
中,但我无法告诉您没有发布的代码中会发生什么。总之,“普通”PHP代码,包括数据库查询和类似的顺序运行。无论你调用它1次、50次或1000次,这些回音都会以相同的顺序出现。当只有2个函数时,你可能会得到正确的结果。但是当有大约10个函数和100个函数调用时,区别很明显,只有异步函数不按顺序运行。可能是
somecode
中的代码造成了这种行为。即使一个文件有一百个函数,它也将按顺序执行,直到中间有对其他函数的调用为止。那么,如何确保函数不是异步的?您使用过ajax吗?还是访问您网站的多线程应用程序?
<?php
function a ($var) {
  echo 'a->'.$var.'<br>';
  b($var);
}

function b ($var) {
  echo 'b->'.$var.'<br>';
}

a(1);
a(2);
?>
a->1
b->1
a->2
b->2