當你不在用到物件時,PHP會自動將物件釋放,釋放時會呼叫解建構子
<?php header("Content-Type:text/html; charset=utf-8"); class MyTest{ protected $str; const NAME = "CY"; public static $number = 0; public function __construct($str){ $this->$str = $str; echo "父" . $this->$str . "<br>"; } public function __destruct(){ echo "解建構<br>"; } public function SetNumber($number){ self::$number = $number; } public function GetNumber(){ return self::$number; } } class MyTest2 extends MyTest{ public function __construct($str){ parent::__construct($str); $this->$str = $str; echo "子" . $this->$str . "<br>"; } public function __destruct(){ echo "解建構<br>"; } public function SetNumber($number1, $number2){ parent::SetNumber($number1+$number2); } public function GetNumber(){ return self::$number; } } $test = new MyTest("建構子"); $test->SetNumber(5); echo "數字:" . $test->GetNumber() . "<br>"; echo Mytest::NAME . "<br>"; echo "--------------<br>"; $test2 = new MyTest2("建構子"); $test2->SetNumber(10, 20); echo "數字加總:" . $test2->GetNumber() . "<br>"; ?>
參考資料:
http://www.php.net/manual/en/language.oop5.php
http://www.php.net/manual/en/language.oop5.decon.php
http://www.php.net/manual/en/language.oop5.visibility.php
http://www.php.net/manual/en/language.oop5.inheritance.php
http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php
http://www.php.net/manual/en/language.oop5.static.php