debug_backtrace final catch
<?php function backtrace_str(){ $str = ''; $w = 0; $backtrace = debug_backtrace(); foreach($backtrace as $arr){ $str .= $w."\n"; $w++; foreach($arr as $key=>$val){ $str .=$key.'=>'.$val."\n"; } } return $str; }
w
http://php.net/manual/en/language.oop5.final.php
PHP 5 introduces the final keyword, which prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended.
http://php.net/manual/zh/language.oop5.final.php
PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
http://php.net/manual/en/language.exceptions.extending.php
w
<?php class Exception { protected $message = 'Unknown exception'; // exception message private $string; // __toString cache protected $code = 0; // user defined exception code protected $file; // source filename of exception protected $line; // source line of exception private $trace; // backtrace private $previous; // previous exception if nested exception public function __construct($message = null, $code = 0, Exception $previous = null); final private function __clone(); // Inhibits cloning of exceptions. final public function getMessage(); // message of exception final public function getCode(); // code of exception final public function getFile(); // source filename final public function getLine(); // source line final public function getTrace(); // an array of the backtrace() final public function getPrevious(); // previous exception final public function getTraceAsString(); // formatted string of trace // Overrideable public function __toString(); // formatted string for display }
w
<?php function inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } return 1 / $x; } try { echo inverse(5) . "\n"; echo inverse(0) . "\n"; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } function w($w) { try { echo inverse($w) . "\n"; return 'w0'; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } return 'w1'; } $w = w(5); print_r($w); $w = w(0); print_r($w);
C:\>php D:\cmd\amzapi\amzapitest_com\MarketplaceWebServiceOrders\Samples\wd_learn.php 0.2 Caught exception: Division by zero. 0.2 w0Caught exception: Division by zero. w1 C:\>