PHP foreach在第一次迭代后停止,没有明显的原因

时间:2014-06-18 13:38:43

标签: php debugging exception exception-handling foreach

我在PHP中使用foreach循环时遇到了很多麻烦。

这不是通常的" break \ exit \ return \ whatever;"问题,我会解释原因:

class Example {
     private function generic(/* args */) {
          global $db;
          $result = false;
          /* a series of if and functions, mysql transactions and 
             "throw new Exception" on rollback */
         $notif = new Notification();
         $notif->send(/* params */);
         /* if commit succeded > $result = true; */
         return $result;
    }

    public function start() {
         $list = array("abc" => array("foo" => "bar", "foo2" => "bar"), "def" => array("foo" => "bar", "foo2" => "bar"));
         foreach($list as $x => $y) {
             $this->generic($x, $y, ....);
         }
    }
}

问题似乎是$notif声明和\或$notif->send()函数。

我试图尝试\捕获整个generic()函数以及send()函数,但不会抛出异常。

send()函数只不过是一系列查询,最终(在用户请求时)它通过swiftmailer发送电子邮件通知。

我可以给你的另一个细节是成功发送通知,一切似乎在第一次迭代时都能正常工作,但是foreach会停止。

正如我之前提到的:没有"退出();"或者"休息;"或者"返回$ x;"在函数中的一些奇怪点等等......

您是否知道问题可能是什么,或者我如何找到问题?

0 个答案:

没有答案