php 物件導向編程之構造方法與析構方法

來源:互聯網
上載者:User

大多數類都有一種稱為建構函式的特殊方法。當建立一個對象時,它將自動調用構造函
數,也就是使用new 這個關鍵字來執行個體化對象的時候自動調用構造方法。
建構函式的聲明與其它操作的聲明一樣,只是其名稱必須是__construct( )。這是PHP5 中
的變化,以前的版本中,建構函式的名稱必須與類名相同,這種在PHP5 中仍然可以用,但
現在以經很少有人用了,這樣做的好處是可以使建構函式獨立於類名,當類名發生改變時不
需要改相應的建構函式名稱了。為了向下相容,如果一個類中沒有名為__construct( )的方法,
PHP 將搜尋一個php教程4 中的寫法,與類名相同名的構造方法。
格式:function __construct ( [參數] ) { ... ... }
在一個類中只能聲明一個構造方法,而是只有在每次建立對象的時候都會去調用一次構
造方法,不能主動的調用這個方法,所以通常用它執行一些有用的初始化任務。比如對成屬
性在建立對象的時候賦初值。

 

<?php
/*
 * 1.對象中成員的訪問(在一個對象的內部方法中,去訪問本對軒昂中的其他方法和成員屬性)
 * 2.在對象中的方法中都預設有一個$this關鍵字,這個關鍵字代表調用這個方法的對象
 *
 * 構造方法
 *
 *   1.是對象建立完成後,“第一個”“自動調用”的方法
 *
 *   2.構造方法的定義,方法名是一個固定的,
 *     在php4中:和類名相同的方法就是構造方法
 *     在php5中:構造方法選擇使用 魔術方法__construct() 所有類中聲明構造方法都使用這個名稱
 *       優點:在改變類名時,構造方法不用改變
 *      魔術方法: 在類中寫出了某個魔術方法,這個方法對應的功能就會添加上
 *         方法名稱都是固定的(都是系統提供好的),沒有自己定義的
 *         每一個魔術方法,都是在不同時刻為了完成某一功能自動調用的方法
 *         不同的魔術方法有不同的調用時機
 *         都是以 __ 開頭的方法
 *          __construct(); __destruct(); __set();......
 *    
 *   作用:為成員屬性初始化;
 *
 *
 * 析構方法
 *
 *  1.當對象被釋放之前最後一個“自動”調用的方法
 *  使用記憶體回收行程(java php),而c++手動 的釋放
 *
 *  作用:關閉一些資源,作一些清理的工作
 *  
 *  __destruct();
 *
 */
 class Person{
  var $name;
  var $age;
  var $sex;
  
  //php4中的構造方法
  /*function Person()
    {
   //每聲明一個對象都會調用
   echo "1111111111111111";
  }*/

  //php5中的構造方法
  function __construct($name,$age,$sex){
   $this->name=$name;
   $this->age=$age;
   $this->sex=$sex;

  }

  function say(){
   //$this->name;//對象中成員的訪問使用$this
   echo "我的名字:{$this->name},我的年齡:{$this->age}<br>"
  }

  function run(){

  }

  function eat(){

  }

  //析構方法
  function __destruct(){

  }
 }

$p1=new Person("zhangsan",25,"男");
$p2=new Person;
$p3=new Person;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.