1. Home
  2. /
  3. Web technology
  4. /
  5. PHP
  6. /
  7. [ PHP ] –...

[ PHP ] – debug_backtrace() 除錯追蹤

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

debug_backtrace() 常用在除錯可以看到執行的歷程,也可以用在發生錯誤時寫入你的error_log。

class ck {
	private $budget;//預算
  	private $buy_status = false;//菜買了嗎?
  	private $preapare_status = false;//備好菜了嗎?
  	private $cooking_tatus = false;//煮好菜了嗎?
  	private function buy(){ //最少要有500塊才夠買菜
		return $this->buy_status = $this->budget > 500 ? true : false;
	}
	private function preapare(){ //備料 要先買好菜才能夠洗菜 切菜 做備料的動作
		return $this->preapare_status = $this->buy_status ? true : false;
	}
	private function cooking(){ //煮飯 要先備料好才能夠煮
		return $this->cooking_tatus = $this->preapare_status ? true : false;
	}
	public function serve($budget){ //上菜 你只能呼叫這個 因為它是公開的方法 其它的都不允許 在類別之外呼叫 達到保護資料確保流程正確
		$this->budget = $budget;
		echo '<br>'.( $this->buy() ? '買好菜了' : '不夠錢');
		echo '<br>'.( $this->preapare() ? '備好菜了' : '還沒買菜');
		echo '<br>'.( $this->cooking() ? '煮好菜了' : '還沒備菜');
		echo '<br>'.( $this->cooking_tatus ? '上菜囉!' : '還沒煮好哦!');
		var_dump(debug_backtrace());
	}
}
//封裝的好處 上菜的順序 拿錢 買菜 備菜 煮菜 最後才能上菜
$c = new ck();
$c->serve(600);//我們只要呼叫上菜 跟 給錢 前置作業的細節跟流程不用管他,卡在那個階段也會跟你說明
echo '<br>';
//顯示結果
/*
買好菜了
備好菜了
煮好菜了
上菜囉!
  [0]=>
  array(7) {
    ["file"]=>
    string(44) "/var/www/html/webteach.tw/abc/def/test.php"
    ["line"]=>
    int(32)
    ["function"]=>
    string(5) "serve"
    ["class"]=>
    string(2) "ck"
    ["object"]=>
    object(ck)#1 (4) {
      ["budget":"ck":private]=>
      int(600)
      ["buy_status":"ck":private]=>
      bool(true)
      ["preapare_status":"ck":private]=>
      bool(true)
      ["cooking_tatus":"ck":private]=>
      bool(true)
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      int(600)
    }
  }
}
*/

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *