예제 #1
0
파일: Util.php 프로젝트: dqneo/ethnam
 /**
  *  バックトレース引数をフォーマットして返す
  *
  *  @access private
  *  @param  string  $arg    バックトレースの引数
  *  @param  int     $level  バックトレースのネストレベル
  *  @param  int     $wrap   改行フラグ
  *  @return string  文字列にフォーマットされたバックトレース
  */
 private static function _formatBacktrace($arg, $level = 0, $wrap = true)
 {
     $pad = str_repeat("  ", $level);
     if (is_array($arg)) {
         $r = sprintf("     %s[array] => (\n", $pad);
         if ($level + 1 > 4) {
             $r .= sprintf("     %s  *too deep*\n", $pad);
         } else {
             foreach ($arg as $key => $elt) {
                 $r .= Ethna_Util::_formatBacktrace($key, $level, false);
                 $r .= " => \n";
                 $r .= Ethna_Util::_formatBacktrace($elt, $level + 1);
             }
         }
         $r .= sprintf("     %s)\n", $pad);
     } else {
         if (is_object($arg)) {
             $r = sprintf("     %s[object]%s%s", $pad, get_class($arg), $wrap ? "\n" : "");
         } else {
             $r = sprintf("     %s[%s]%s%s", $pad, gettype($arg), $arg, $wrap ? "\n" : "");
         }
     }
     return $r;
 }