PHP物件導向(OOP)編程:“$this”的特殊用法

來源:互聯網
上載者:User

現在我們知道了如何訪問對象中的成員,是通過”對象->成員”的方式訪問的,這是在對象的外部去訪問對象中成員的形式, 那麼如果我想在對象的內部,讓對象裡的方法訪問本對象的屬性, 或是對象中的方法去調用本對象的其它方法這時我們怎麼辦?因為對象裡面的所有的成員都要用對象來調用,包括對象的內部成員之間的調用,所以在PHP裡面給 我提供了一個本對象的引用$this, 每個對象裡面都有一個對象的引用$this來代表這個對象,完成對象內部成員的調用, this的本意就是“這個”的意思, 上面的執行個體裡面,我們執行個體化三個執行個體對象$P1、 $P2、 $P3,這三個對象裡面各自存在一個$this分別代表對象$p1、$p2、$p3 。

通過上圖我們可以看到,$this就是對象內部代表這個對象的引用,在對象內部和調用本對象的成員和對象外部調用對象的成員所使用的方式是一樣的。

$this->屬性: $this->name; $this->age; $this->sex;

$this->方法 :$this->say(); $this->run();

修改一下上面的執行個體,讓每個人都說出自己的名字,性別和年齡:

<?phpclass Person{//下面是人的成員屬性var $name; //人的名子var $sex; //人的性別var $age; //人的年齡//下面是人的成員方法function say() { //這個人可以說話的方法echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}function run() { //這個人可以走路的方法echo "這個人在走路";}}$p1 = new Person(); //建立執行個體對象$p1$p2 = new Person(); //建立執行個體對象$p2$p3 = new Person(); //建立執行個體對象$p3//下面三行是給$p1對象屬性賦值$p1->name = "張三";$p1->sex = "男";$p1->age = 20;//下面訪問$p1對象中的說話方法$p1->say();//下面三行是給$p2對象屬性賦值$p2->name = "李四";$p2->sex = "女";$p2->age = 30;//下面訪問$p2對象中的說話方法$p2->say();//下面三行是給$p3對象屬性賦值$p3->name = "王五";$p3->sex = "男";$p3->age = 40;//下面訪問$p3對象中的說話方法$p3->say();?>

輸出結果為:

我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:李四 性別:女 我的年齡是:30我的名子叫:王五 性別:男 我的年齡是:40

分析一下這個方法:

function say() { //這個人可以說話的方法echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}

在$p1、$p2和$p3這三個對象中都有say()這個方法,$this分別代表這三個對象, 調用相應的屬性,列印出屬性的值,這就是在對象內部訪問對象屬性的方式, 如果相在say()這個方裡調用run()這個方法也是可以的,在say()這個方法中使用$this->run()的方式來完成調用。

您可能感興趣的文章

  • PHP物件導向入門教程推薦
  • 深入PHP:物件導向、模式與實踐(第3版).pdf下載
  • PHP物件導向法則
  • PHP對象轉數組(Object轉Array),Json轉數組(Json轉Array)的方法
  • php利用curl實現多線程的類,php curl多線程下載圖片
  • php中關於抽象(abstract)類和抽象方法的問題解析
  • mysql命令更改表結構:添加、刪除、修改欄位、調整欄位順序
  • 程式員和測試員之間的經典對白。這些是國外程式員總結分享的,稱其上全球通用?


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.