關(guān)于PHP構(gòu)造函數(shù)使用方法揭秘
PHP經(jīng)過長時(shí)間的發(fā)展,很多用戶都很了解PHP了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。大多數(shù)類都有一種稱為構(gòu)造函數(shù)的特殊方法。當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),它將自動(dòng)調(diào)用PHP構(gòu)造函數(shù),也就是使用new這個(gè)關(guān)鍵字來實(shí)例化對(duì)象的時(shí)候自動(dòng)調(diào)用構(gòu)造方法。
#T#PHP構(gòu)造函數(shù)的聲明與其它操作的聲明一樣,只是其名稱必須是__construct( )。這是PHP5中的變化,以前的版本中,構(gòu)造函數(shù)的名稱必須與類名相同,這種在PHP5中仍然可以用,但現(xiàn)在以經(jīng)很少有人用了,這樣做的好處是可以使構(gòu)造函數(shù)獨(dú)立于類名,當(dāng)類名發(fā)生改變時(shí)不需要改相應(yīng)的構(gòu)造函數(shù)名稱了。為了向下兼容,如果一個(gè)類中沒有名為__construct( )的方法,PHP將搜索一個(gè)php4中的寫法,與類名相同名的構(gòu)造方法。格式:function __construct ( [參數(shù)] ) { … … }在一個(gè)類中只能聲明一個(gè)構(gòu)造方法,而是只有在每次創(chuàng)建對(duì)象的時(shí)候都會(huì)去調(diào)用一次構(gòu)造方法,不能主動(dòng)的調(diào)用這個(gè)方法,所以通常用它執(zhí)行一些有用的初始化任務(wù)。比如對(duì)成屬性在創(chuàng)建對(duì)象的時(shí)候賦初值。
- //創(chuàng)建一個(gè)人類
 - 0class Person
 - 0{
 - //下面是人的成員屬性
 - var $name; //人的名子
 - var $sex; //人的性別
 - var $age; //人的年齡
 - //定義一個(gè)構(gòu)造方法參數(shù)為姓名$name、性別$sex和年齡$age
 - function __construct($name, $sex, $age)
 - {
 - //通過構(gòu)造方法傳進(jìn)來的$name給成員屬性$this->name賦初使值
 - $this->name=$name;
 - //通過構(gòu)造方法傳進(jìn)來的$sex給成員屬性$this->sex賦初使值
 - $this->sex=$sex;
 - //通過構(gòu)造方法傳進(jìn)來的$age給成員屬性$this->age賦初使值
 - $this->age=$age;
 - }
 - //這個(gè)人的說話方法
 - function say()
 - {
 - echo "我的名子叫:".$this->name." 性別:".$this->sex." 我的年齡是:".$this->age."<br>";
 - }
 - }
 - //通過構(gòu)造方法創(chuàng)建3個(gè)對(duì)象$p1、p2、$p3,分別傳入三個(gè)不同的實(shí)參為姓名、性別和年齡
 - $p1=new Person("張三","男", 20);
 - $p2=new Person("李四","女", 30);
 - $p3=new Person("王五","男", 40);
 - //下面訪問$p1對(duì)象中的說話方法
 - $p1->say();
 - //下面訪問$p2對(duì)象中的說話方法
 - $p2->say();
 - //下面訪問$p3對(duì)象中的說話方法
 - $p3->say();
 
 
輸出結(jié)果為: 
我的名子叫:張三性別:男我的年齡是:20 
我的名子叫:李四性別:女我的年齡是:30
我的名子叫:王五性別:男我的年齡是:40















 
 
 
 
 
 
 