在php中構造函數與析構函數都是使用在類中的,下面我來給大家詳細介紹關于在php類中使用構造函數與析構函數的方法,有需要了解的朋友可參考參考.
析構函數
php析構函數的作用剛好和構造函數相反,構造函數是在對象實例化時自動執行,而析構函數在對象被銷毀時自動執行.
默認情況下,php僅釋放對象屬性所占用的內存,并不銷毀對象相關的資源,而利用析構函數在使用一個對象之后執行代碼來清除內存,并將對象從內存中銷毀.析構函數__destruct()結構形式如下:
實例代碼如下:
- function __destruct(){
- /* class initialization code */
- }
析構函數是由系統自動調用,不能帶參數.
實例代碼如下:
- <?php
- class des{
- function __destruct(){
- echo "運行結束,執行析構函數";
- }
- }
- $p=new des(); /* 實例化類 */
- $sum=0;
- for($i=0;$i<10;$i++){
- $sum=$sum+$i;
- echo $sum ."<br>";
- }
- ?>
析構函數的調用
php如何調用析構函數?當php腳本不再與對象相關時將調用析構函數.如果要明確地銷毀一個對象調用析構函數,可以給指向對象的變量不分配任何值,通常將變量賦值為NULL或者用unset()函數.
實例代碼如下:
- <?php
- class des{
- function __destruct(){
- echo "對象被銷毀,執行析構函數<br>";
- }
- }
- $p=new des(); /* 實例化類 */
- echo "程序開始<br>";
- unset($p); /* 銷毀變量$p */
- echo "程序結束";
- ?>
構造函數
我們在使用類的過程中,有時需要立即為實例化對象的多個字段父子,如果通過手工,會帶來很多不可預測的問題,而如果在對象創建過程中自動執行,則會帶來很多方便.
php構造函數作用就是當類被實例化時,會自動執行的函數,又稱為構造函數.構造函數的聲明和其它函數一樣,知識構造函數的名稱是“__construct”固定的名稱,其結構形式如下:
實例代碼如下:
- function __construct([argument1,argument2,argument3]){
- /* class initialization code */
- }
實例代碼如下:
- <?php
- class user{
- public $name;
- private $password;
- private $login;
- public function __construct($name,$password){
- $this->name=$name;
- $this->password=$password;
- $this->login=time();
- }
- function getlogin(){
- return(date('M d,Y',$this->login));
- }
- }
- $user=new user('Marry','888888');
- echo "用戶名: ". $user->name. "<br>";
- print("訪問時間". $user->getlogin());
- ?>
調用父類構造函數
構造函數可以被子類調用,php調用父類構造函數時必須使用parent關鍵字,否則不會自動調用.
實例代碼如下:
- <?php
- class task1{
- public function __construct(){
- echo "today is Monday". "<br>";
- }
- }
- class task2 extends task1{
- function __construct(){
- parent::__construct(); /* 調用父類構造函數 */
- echo "I must work!";
- }
- }
- new task2;
- ?>
新聞熱點
疑難解答