在php 5中,提供了構造函數,析構函數,對象克隆的方法,重載方法等.
1、構造函數__construct
如果在類申明中__construct函數,將被當成一個構造函數并且在對象建立時被執行,但在php4中,構造函數的名稱與類名相同就是構造函數哦,這一點有一些不同。
2、析構函數__destruct
如果在php類中申明了,在對象被銷毀時調用__destruct函數
下面來看個實例,代碼如下:
- <?php
- class Session
- {
- public function __construct()
- {
- echo '構造函數執行';
- }
- public function __destruct()
- {
- echo '析構函數執行';
- }
- }//開源代碼Vevb.com
- $Obj = new Session;
- unset($Obj);//刪除對象, __destruct()會被調用的
- //輸出
- //構造函數執行
- /析構函數執行
- ?>
上面在使用new創建對象時就執行了__construct,對象結束時就執行了__destruct()
3、__clone()克隆函數,代碼如下:
- <?php
- class Session
- {
- public $age = 20;
- public $sub = null;
- public function __clone()
- {
- $this->sub=clone $this->sub;
- }
- }
- class Session 2
- {
- public $value=5;
- }
- $s = new Session;
- $s->sub=new Session 2;
- $s2 = clone $s;
- $s->sub->$value =10;
- echo $s2->sub->$value;
- ?>
4 現在來看關于重載函數__get ,__set,__call函數,代碼如下:
- <?php
- class Session
- {
- protected function __call($func,$para)
- {
- echo '方法不存在:’func." ".'參數為:'." ";
- print_r($para);
- }
- }
- $s=new Session ();
- echo $c->getNames('hello','you');
- /*
- 輸出:
- 方法不存在:getNames
- 參數為:
- Array
- (
- [0] => hello
- [1] => you
- )
- */
- ?>
新聞熱點
疑難解答