PHP foreach堆栈-调用下一次迭代时,在for each循环中调用的函数是否仍在运行

PHP foreach堆栈-调用下一次迭代时,在for each循环中调用的函数是否仍在运行,php,foreach,Php,Foreach,我遇到的问题是cURL无法连接到返回xml提要的服务器,并且不确定我的代码是否堆积并导致问题。当下一个循环迭代到来时,在这个foreach循环中调用的最终函数是否仍在运行 是否可以确保在下一次迭代开始之前完成循环中的所有函数,或者foreach在默认情况下会这样做?我尝试在process_xml()上设置一个return true,并在循环中运行一个测试:if($this->process_xml($xml_array))continue; 但这似乎没有效果,而且似乎是个坏主意 foreach(

我遇到的问题是cURL无法连接到返回xml提要的服务器,并且不确定我的代码是否堆积并导致问题。当下一个循环迭代到来时,在这个foreach循环中调用的最终函数是否仍在运行

是否可以确保在下一次迭代开始之前完成循环中的所有函数,或者foreach在默认情况下会这样做?我尝试在process_xml()上设置一个return true,并在循环中运行一个测试:if($this->process_xml($xml_array))continue; 但这似乎没有效果,而且似乎是个坏主意

foreach($arrayOfUrls as $url){

    //retrieve xml from url as string.
    if($url_xml_string = $this->getFeedStringUsing_cURL($url)){
        $xml_object = simplexml_load_string($url_xml_string);
        $xml_array = $this->feedStringToArray($xml_object);
        //process the xml.
        $this->process_xml($xml_array);
    }                                 
}

不,这是不可能的。在运行下一条语句之前,执行并完成每条语句。

不,这是不可能的。在运行下一条语句之前,执行并完成每条语句

我不确定我的代码是否在堆积

不确定?如果这对你很重要,为什么你不知道呢?在不知道您运行的是什么操作系统的情况下,很难建议您如何操作,但netstat可能是一个很好的起点

在这个foreach循环中调用的最后一个函数是否仍在运行

这是极不可能的——PHP脚本在一个执行线程中运行,除非您告诉它们不要这样做——但是curl扩展允许您在PHP代码中定义在操作完成之前运行的回调,curl_multi_函数家族还允许您在请求进行时运行PHP代码

我不确定我的代码是否在堆积

不确定?如果这对你很重要,为什么你不知道呢?在不知道您运行的是什么操作系统的情况下,很难建议您如何操作,但netstat可能是一个很好的起点

在这个foreach循环中调用的最后一个函数是否仍在运行


这是极不可能的-PHP脚本在一个执行线程中运行,除非您告诉它们不要-但是curl扩展允许您在PHP代码中定义回调,该回调在操作完成之前运行,curl_multi_函数系列还允许您在请求进行时运行php代码。

这取决于循环中的所有函数调用是否同步。这取决于循环中的所有函数调用是否同步。