PHP5的OOP–$this引用
$this一般指向呼叫物件
程式碼如下
<?php
//$this 引用
class A
{
function foo()
{
if (isset($this)) {
echo `$this已經定義:類 (`;
echo get_class($this);
echo “)<br/>“;
} else {
echo “$this沒有定義.<br/>“;
}
}
}
class B
{
function bar()
{
A::foo();
}
}
$a = new A();
$a->foo();//$this已經定義:類 (A)
A::foo();//$this沒有定義.
$b = new B();
$b->bar();//$this已經定義:類 (B)
B::bar();//$this沒有定義.
?>
//$this 引用
class A
{
function foo()
{
if (isset($this)) {
echo `$this已經定義:類 (`;
echo get_class($this);
echo “)<br/>“;
} else {
echo “$this沒有定義.<br/>“;
}
}
}
class B
{
function bar()
{
A::foo();
}
}
$a = new A();
$a->foo();//$this已經定義:類 (A)
A::foo();//$this沒有定義.
$b = new B();
$b->bar();//$this已經定義:類 (B)
B::bar();//$this沒有定義.
?>
可以看出A的例項物件通過$a->foo()方式呼叫時,$this就指向了這個呼叫物件。
但是通過靜態呼叫A::foo()不存在例項化情況,所有沒有$this.
接著在$b->bar()的呼叫中,有個靜態呼叫A::foo()這時$this指向了上下文中的物件$b.
於是下面的這個程式碼的執行結果很顯然了。
<?php
class A
{
var $hello=”Hello”;
function aa()
{
echo $this->hello;
}
}
class B
{
var $hello=”你好”;
function bb()
{
A::aa();
}
}
$b1=new B();
$b1->bb();
?>
class A
{
var $hello=”Hello”;
function aa()
{
echo $this->hello;
}
}
class B
{
var $hello=”你好”;
function bb()
{
A::aa();
}
}
$b1=new B();
$b1->bb();
?>
本文轉自 xcf007 51CTO部落格,原文連結:http://blog.51cto.com/xcf007/106081,如需轉載請自行聯絡原作者
相關文章
- PHP5物件導向 OOP思維導圖PHP物件OOP
- 關於PHP5後“預設情況下物件是通過引用傳遞的”思考PHP物件
- OOPOOP
- php5安裝PHP
- Ubuntu php5安裝UbuntuPHP
- Java的強引用、軟引用、弱引用、虛引用Java
- [LAMP]安裝PHP5/7LAMPPHP
- python oopPythonOOP
- oop原則OOP
- POP,OOP,AOPOOP
- 何必非要OOP?OOP
- java的強引用、軟引用、弱引用、幻象引用,引用佇列總結Java佇列
- Java中的四種引用方式(強引用、軟引用、弱引用、虛引用)Java
- 理解Java的強引用、軟引用、弱引用和虛引用Java
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid
- Java引用型別解析:掌握強引用、軟引用、弱引用和幻象引用的妙用Java型別
- php5模組pdo、pdo_mysql、mysqli的新增PHPMySql
- OOP的多型和繼承OOP多型繼承
- 物件導向(oop)物件OOP
- c# oop思想C#OOP
- oop 之繼承OOP繼承
- oop_promax_staticOOP
- implementing OOP in rustOOPRust
- OOP實驗三OOP
- JavaScript 是真正的 OOP 語言嗎?JavaScriptOOP
- 我對OOP的淺顯見解OOP
- Java四種引用包括強引用,軟引用,弱引用,虛引用。Java
- [專業術語]OOPOOP
- 人們誤解了OOPOOP
- JavaScript尋蹤OOP之路JavaScriptOOP
- oop 4~6總結OOP
- 17-oop封裝OOP封裝
- 18-oop繼承OOP繼承
- OOP 1~3總結OOP
- ch07_oop_fundamentalsOOP
- 【JVM】如何理解強引用、軟引用、弱引用、虛引用?JVM
- Java四大引用詳解:強引用、軟引用、弱引用、虛引用Java
- SVG的引用SVG