php面向?qū)ο笕ヂ?(三)特殊的引用“$this”的使用
更新時(shí)間:2009年09月30日 21:54:51 作者:
現(xiàn)在我們知道了如何訪問對(duì)象中的成員,是通過“對(duì)象->成員”的方式訪問的,這是在對(duì)象的外部去訪問對(duì)象中成員的形式,那么如果我想在對(duì)象的內(nèi)部,讓對(duì)象里的方法訪問本對(duì)象的屬性,或是對(duì)象中的方法去調(diào)用本對(duì)象的其它方法這時(shí)我們?cè)趺崔k?
7.特殊的引用“$this”的使用
現(xiàn)在我們知道了如何訪問對(duì)象中的成員,是通過“對(duì)象->成員”的方式訪問的,這是在對(duì)
象的外部去訪問對(duì)象中成員的形式,那么如果我想在對(duì)象的內(nèi)部,讓對(duì)象里的方法訪問本對(duì)
象的屬性,或是對(duì)象中的方法去調(diào)用本對(duì)象的其它方法這時(shí)我們?cè)趺崔k?因?yàn)閷?duì)象里面的所
有的成員都要用對(duì)象來調(diào)用,包括對(duì)象的內(nèi)部成員之間的調(diào)用,所以在PHP 里面給我提供了
一個(gè)本對(duì)象的引用$this,每個(gè)對(duì)象里面都有一個(gè)對(duì)象的引用$this 來代表這個(gè)對(duì)象,完成對(duì)象
內(nèi)部成員的調(diào)用,this 的本意就是“這個(gè)”的意思,上面的實(shí)例里面,我們實(shí)例化三個(gè)實(shí)例
對(duì)象$P1、$P2、$P3,這三個(gè)對(duì)象里面各自存在一個(gè)$this 分別代表對(duì)象$p1、$p2、$p3。
通過上圖我們可以看到,$this 就是對(duì)象內(nèi)部代表這個(gè)對(duì)象的引用,在對(duì)象內(nèi)部和調(diào)用本
對(duì)象的成員和對(duì)象外部調(diào)用對(duì)象的成員所使用的方式是一樣的。
$this->屬性$this->name; $this->age; $this->sex;
$this->方法$this->say(); $this->run();
修改一下上面的實(shí)例,讓每個(gè)人都說出自己的名字,性別和年齡:
代碼片段
<?php
class Person{
//下面是人的成員屬性
var $name; //人的名字
var $sex; //人的性別
var $age; //人的年齡
//下面是人的成員方法
function say(){//這個(gè)人可以說話的方法
echo "我的名字叫:".$this->name." 性別:".$this->sex." 我的年齡是:".$this->age."<br>";
}
function run(){ //這個(gè)人可以走路的方法
echo "這個(gè)人在走路";
}
}
$p1=new Person(); //創(chuàng)建實(shí)例對(duì)象$p1
$p2=new Person(); //創(chuàng)建實(shí)例對(duì)象$p2
$p3=new Person(); //創(chuàng)建實(shí)例對(duì)象$p3
//下面三行是給$p1對(duì)象屬性賦值
$p1->name="張三";
$p1->sex="男";
$p1->age=20;
//下面訪問$p1對(duì)象中的說話方法
$p1->say();
//下面三行是給$p2對(duì)象屬性賦值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面訪問$p2對(duì)象中的說話方法
$p2->say();
//下面三行是給$p3對(duì)象屬性賦值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面訪問$p3對(duì)象中的說話方法
$p3->say();
?>
輸出結(jié)果
我的名字叫:張三性別:男我的年齡是:20
我的名字叫:李四性別:女我的年齡是:30
我的名字叫:王五性別:男我的年齡是:40
分析一下這個(gè)方法:
代碼片段
function say(){ //這個(gè)人可以說話的方法
echo "我的名字叫:".$this->name." 性別:".$this->sex." 我的年齡是:".$this->age."<br>";
}
在$p1、$p2 和$p3 這三個(gè)對(duì)象中都有say()這個(gè)方法,$this 分別代表這三個(gè)對(duì)象,調(diào)用相應(yīng)的屬性,打印出屬性的值,這就是在對(duì)象內(nèi)部訪問對(duì)象屬性的方式,如果相在say()這個(gè)方
法里調(diào)用run()這個(gè)方法也是可以的,在say()這個(gè)方法中使用$this->run()的方式來完成調(diào)用。
現(xiàn)在我們知道了如何訪問對(duì)象中的成員,是通過“對(duì)象->成員”的方式訪問的,這是在對(duì)
象的外部去訪問對(duì)象中成員的形式,那么如果我想在對(duì)象的內(nèi)部,讓對(duì)象里的方法訪問本對(duì)
象的屬性,或是對(duì)象中的方法去調(diào)用本對(duì)象的其它方法這時(shí)我們?cè)趺崔k?因?yàn)閷?duì)象里面的所
有的成員都要用對(duì)象來調(diào)用,包括對(duì)象的內(nèi)部成員之間的調(diào)用,所以在PHP 里面給我提供了
一個(gè)本對(duì)象的引用$this,每個(gè)對(duì)象里面都有一個(gè)對(duì)象的引用$this 來代表這個(gè)對(duì)象,完成對(duì)象
內(nèi)部成員的調(diào)用,this 的本意就是“這個(gè)”的意思,上面的實(shí)例里面,我們實(shí)例化三個(gè)實(shí)例
對(duì)象$P1、$P2、$P3,這三個(gè)對(duì)象里面各自存在一個(gè)$this 分別代表對(duì)象$p1、$p2、$p3。
通過上圖我們可以看到,$this 就是對(duì)象內(nèi)部代表這個(gè)對(duì)象的引用,在對(duì)象內(nèi)部和調(diào)用本
對(duì)象的成員和對(duì)象外部調(diào)用對(duì)象的成員所使用的方式是一樣的。
$this->屬性$this->name; $this->age; $this->sex;
$this->方法$this->say(); $this->run();
修改一下上面的實(shí)例,讓每個(gè)人都說出自己的名字,性別和年齡:
代碼片段
復(fù)制代碼 代碼如下:
<?php
class Person{
//下面是人的成員屬性
var $name; //人的名字
var $sex; //人的性別
var $age; //人的年齡
//下面是人的成員方法
function say(){//這個(gè)人可以說話的方法
echo "我的名字叫:".$this->name." 性別:".$this->sex." 我的年齡是:".$this->age."<br>";
}
function run(){ //這個(gè)人可以走路的方法
echo "這個(gè)人在走路";
}
}
$p1=new Person(); //創(chuàng)建實(shí)例對(duì)象$p1
$p2=new Person(); //創(chuàng)建實(shí)例對(duì)象$p2
$p3=new Person(); //創(chuàng)建實(shí)例對(duì)象$p3
//下面三行是給$p1對(duì)象屬性賦值
$p1->name="張三";
$p1->sex="男";
$p1->age=20;
//下面訪問$p1對(duì)象中的說話方法
$p1->say();
//下面三行是給$p2對(duì)象屬性賦值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面訪問$p2對(duì)象中的說話方法
$p2->say();
//下面三行是給$p3對(duì)象屬性賦值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面訪問$p3對(duì)象中的說話方法
$p3->say();
?>
輸出結(jié)果
我的名字叫:張三性別:男我的年齡是:20
我的名字叫:李四性別:女我的年齡是:30
我的名字叫:王五性別:男我的年齡是:40
分析一下這個(gè)方法:
代碼片段
function say(){ //這個(gè)人可以說話的方法
echo "我的名字叫:".$this->name." 性別:".$this->sex." 我的年齡是:".$this->age."<br>";
}
在$p1、$p2 和$p3 這三個(gè)對(duì)象中都有say()這個(gè)方法,$this 分別代表這三個(gè)對(duì)象,調(diào)用相應(yīng)的屬性,打印出屬性的值,這就是在對(duì)象內(nèi)部訪問對(duì)象屬性的方式,如果相在say()這個(gè)方
法里調(diào)用run()這個(gè)方法也是可以的,在say()這個(gè)方法中使用$this->run()的方式來完成調(diào)用。
您可能感興趣的文章:
- PHP對(duì)象遞歸引用造成內(nèi)存泄漏分析
- PHP對(duì)象相互引用的內(nèi)存溢出實(shí)例分析
- php中引用&的用法分析【變量引用,函數(shù)引用,對(duì)象引用】
- php5對(duì)象復(fù)制、clone、淺復(fù)制與深復(fù)制實(shí)例詳解
- PHP對(duì)象的淺復(fù)制與深復(fù)制的實(shí)例詳解
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類文件,命名空間
- PHP 5.0對(duì)象模型深度探索之對(duì)象復(fù)制
- php面向?qū)ο笕ヂ?(十一)__toString()用法 克隆對(duì)象 __call處理調(diào)用錯(cuò)誤
- php實(shí)現(xiàn)對(duì)象克隆的方法
- PHP對(duì)象克隆clone用法示例
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)特性詳解(接口,繼承,抽象類,析構(gòu),克隆等)
- php中對(duì)象引用和復(fù)制實(shí)例分析
相關(guān)文章
建立動(dòng)態(tài)的WML站點(diǎn)(一)
建立動(dòng)態(tài)的WML站點(diǎn)(一)...2006-10-10
用DBSQL類加快開發(fā)MySQL數(shù)據(jù)庫程序的速度
用DBSQL類加快開發(fā)MySQL數(shù)據(jù)庫程序的速度...2006-10-10
一個(gè)用mysql_odbc和php寫的serach數(shù)據(jù)庫程序
一個(gè)用mysql_odbc和php寫的serach數(shù)據(jù)庫程序...2006-10-10

