當前位置:首頁 > PHP教程 > php面向對象 > 列表

php 面向對象編程之構造方法與析構方法

發布:smiling 來源: PHP粉絲網  添加日期:2014-09-06 14:11:45 瀏覽: 評論:0 

大多數類都有一種稱為構造函數的特殊方法,當創建一個對象時,它將自動調用構造函 數,也就是使用new 這個關鍵字來實例化對象的時候自動調用構造方法.

構造函數的聲明與其它操作的聲明一樣,只是其名稱必須是__construct( ),這是PHP5 中 的變化,以前的版本中,構造函數的名稱必須與類名相同,這種在PHP5 中仍然可以用,但 現在以經很少有人用了,這樣做的好處是可以使構造函數獨立于類名,當類名發生改變時不 需要改相應的構造函數名稱了,為了向下兼容,如果一個類中沒有名為__construct( )的方法,PHP 將搜索一個php4 中的寫法,與類名相同名的構造方法.

格式:function __construct ( [參數] ) { ... ... } 

在一個類中只能聲明一個構造方法,而是只有在每次創建對象的時候都會去調用一次構 造方法,不能主動的調用這個方法,所以通常用它執行一些有用的初始化任務,比如對成屬 性在創建對象的時候賦初值.

PHP實例代碼如下:

  1. <?php 
  2. /* 
  3.  * 1.對象中成員的訪問(在一個對象的內部方法中,去訪問本對軒昂中的其他方法和成員屬性) 
  4.  * 2.在對象中的方法中都默認有一個$this關鍵字,這個關鍵字代表調用這個方法的對象 
  5.  *  
  6.  * 構造方法 
  7.  * 
  8.  *   1.是對象創建完成后,“第一個”“自動調用”的方法 
  9.  * 
  10.  *   2.構造方法的定義,方法名是一個固定的, 
  11.  *     在php4中:和類名相同的方法就是構造方法 
  12.  *     在php5中:構造方法選擇使用 魔術方法__construct() 所有類中聲明構造方法都使用這個名稱 
  13.  *       優點:在改變類名時,構造方法不用改變 
  14.  *      魔術方法: 在類中寫出了某個魔術方法,這個方法對應的功能就會添加上 
  15.  *         方法名稱都是固定的(都是系統提供好的),沒有自己定義的 
  16.  *         每一個魔術方法,都是在不同時刻為了完成某一功能自動調用的方法 
  17.  *         不同的魔術方法有不同的調用時機 
  18.  *         都是以 __ 開頭的方法 
  19.  *          __construct(); __destruct(); __set();...... 
  20.  *      
  21.  *   作用:為成員屬性初始化; 
  22.  *  
  23.  * 
  24.  * 析構方法 
  25.  * 
  26.  *  1.當對象被釋放之前最后一個“自動”調用的方法 
  27.  *  使用垃圾回收器(java php),而c++手動 的釋放 
  28.  * 
  29.  *  作用:關閉一些資源,作一些清理的工作 
  30.  *   
  31.  *  __destruct(); 
  32.  * 
  33.  */ 
  34.  class Person{ 
  35.   var $name
  36.   var $age
  37.   var $sex
  38.    
  39.   //php4中的構造方法 
  40.   /*function Person() 
  41.     { 
  42.    //每聲明一個對象都會調用 
  43.    echo "1111111111111111"; 
  44.   }*/ 
  45.  
  46.   //php5中的構造方法 
  47.   function __construct($name,$age,$sex){ 
  48.    $this->name=$name
  49.    $this->age=$age
  50.    $this->sex=$sex
  51.  
  52.   } 
  53.  
  54.   function say(){ 
  55.    //$this->name;//對象中成員的訪問使用$this 
  56.    echo "我的名字:{$this->name},我的年齡:{$this->age}<br>" 
  57.   } 
  58.  
  59.   function run(){ 
  60.  
  61.   } 
  62.  
  63.   function eat(){ 
  64.  
  65.   } 
  66.  
  67.   //析構方法 
  68.   function __destruct(){ 
  69. //開源代碼phpfensi.com 
  70.   } 
  71.  } 
  72.  
  73. $p1=new Person("zhangsan",25,"男"); 
  74. $p2=new Person; 
  75. $p3=new Person; 
  76. ?> 

Tags: php構造方法 php析構方法

分享到:

天气网首页彩吧