PHP foreach堆栈 - 在调用下一个迭代时,每个循环中调用的函数是否仍然可以运行

时间:2010-09-08 07:47:14

标签: php foreach

我遇到问题,cURL无法连接到返回xml提要的服务器,并且不确定我的代码是否堆叠并导致问题。当下一个循环迭代到来时,是否有可能在此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);
    }                                 
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  

我不确定我的代码是否正在堆叠

不确定?如果这对你很重要,为什么不找出来?不知道你在运行什么操作系统很难建议你如何去做 - 但netstat可能是一个很好的起点。

  

这个foreach循环中调用的最终函数是否仍然可以运行

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