2011-02-26 59 views

回答

2

如果您想輕鬆打印數組或其他PHP值的內容,請使用var_dump。調用exit()垂直於這一點,我認爲這是很清楚的寫:

var_dump($arr); 
exit(1); 

另一種方法是登錄你的輸出,這可能會造成更多的有用的,如果你不想通過你的輸出HTML看過篩爲var_dump輸出:

error_log(var_export($arr)); 
exit(1); 
1

也許你可以做一個調試退出功能進行調試與print_r(打印變量的人類可讀的版本)

function dexit($array, $status = 0) { 
    print_r($array); 
    exit($status); 
} 

那麼,在你的代碼的任何地方,你可以只

dexit($array); 
// or 
dexit($array, 0); 

,但它並不難,只是使用的print_r在線兩種方式:)

1

試試這個,你有兩個選擇,調試或後續代碼var_dump

function debug_exit($array, $type = 1) { 
    if ($type == 1) { print_r($array); } 
    if ($type == 2) { var_dump($array); } 
    exit(); 
} 
0

以下是我使用的是,x_r()。跟蹤來自this example在PHP文檔。跟蹤的原因是,您/他人可以找到哪個/什麼x_r()被調用通過。該exit()是可選的,如果你需要看到主題下print_r()一些原因:

// Exits with a print_r and call trace for debugging 

if (!function_exists('x_r')) { 
    function x_r($obj, $exit = true, $return = true) { 

     // echo the obj first 
     echo '<pre style="background: #FFFFFF;">', print_r($obj, $return), '</pre>'; 

     // include a debug call trace 
     $e = new Exception(); 
     $trace = explode("\n", $e->getTraceAsString()); 

     // reverse array to make steps line up chronologically 
     $trace = array_reverse($trace); 
     array_shift($trace); // remove {main} 
     array_pop($trace); // remove call to this method 
     $length = count($trace); 
     $result = array(); 

     for ($i = 0; $i < $length; $i++) { 
      $result[] = ($i + 1) . ')' . substr($trace[$i], strpos($trace[$i], ' ')); // replace '#someNum' with '$i)', set the right ordering 
     } 

     // echo call trace 
     echo '<pre style="background: #FFFFFF;">', print_r($result, $return), '</pre>'; 

     if ($exit === true) { 
      exit(); 
     } 
    } 
} 

這裏是要點:https://gist.github.com/dhaupin/d9d48328dbe312f6c0de