2009-10-16 69 views
1

我想获取以JSON格式返回的一些错误。所以,我做了一个一流水平的VAR:在脚本PHP总是运行功能

public $errors = Array(); 

因此,低了下去,不同的功能可能会返回一个错误,并添加到自己的错误,以$ errors数组。但是,我必须使用回报;在某些地方发生错误后停止脚本。

所以,当我这样做,我怎么能仍然运行我的最后一个错误函数,将返回所有收集的错误?我该如何解决不得不停止脚本的问题,但仍想要返回错误,以便我需要停止该脚本?

回答

0

如果你正在使用PHP5 +你的类可以有一个析构函数方法:

public function __destruct() { 
    die(var_dump($this->errors)); 
} 
1

真的裸露的骨头骨架:

$errors = array(); 

function add_error($message, $die = false) { 
    global $errors; 
    $errors[] = $message; 
    if ($die) { 
    die(implode("\n", $errors)); 
    } 
} 
0
+0

没有认为脚本是'完成'的? – 2009-10-16 17:48:38

+0

是的,当错误条件是致命错误时,您需要调用exit()。 – ceejayoz 2009-10-16 20:04:26

0
  1. 添加错误当前$_SESSION
  2. 添加最新的错误,任何种类的cacheXML或某些存储

如果代码 '停止':

//代码发生错误

die(print_r($errors));

0

可以使用涉及做{}一招。

do { 
    if(something) { 
     // add error 
    } 
    if(something_else) { 
     // add error 
     break; 
    } 
    if(something) { 
     // add error 
    } 
}while(0); 

// check/print errors 

通知休息,你可以用它打出来的随时做范围,在这之后,你有最后的错误时返回逻辑。 或者你可以只里面有什么做{}在函数内部,并使用回报,而不是突破,这甚至会更好。或者是的,甚至更好,一个具有析构函数的类。