首頁 > 後端開發 > php教程 > 第六節 存取屬性與方法 [6]_PHP教程

第六節 存取屬性與方法 [6]_PHP教程

WBOY
發布: 2016-07-21 16:10:50
原創
976 人瀏覽過


一個物件實例的屬性是變數,就像PHP的其他變數一樣. 但是你必須使用->運算子來引用它們.不需要在屬性前使用美元符$. 例如, 6.1中列印User物件的name屬性那一行.

可以聯用->,如果一個物件的屬性包含了一個物件,你可以使用兩個->運算子來得到內部物件的屬性. 你甚至可以用雙重引用的字串來放置這些表達式. 看6.5中的例子,物件House中的屬性room包含了一組Room物件.

存取方法和存取屬性類似. ->運算子用來指向實例的方法. 在範例6.1中呼叫getLastLogin就是. 方法執行起來和類別外的函數幾乎相同.

如果一個類別從另一類別中繼承而來,父類別中的屬性和方法將在子類別中都有效,即使在子類別中沒有聲明. 像以前提到過的,繼承是非常強大的. 如果你想訪問一個繼承的屬性,你只需要像訪問基類自己的屬性那樣引用即可,使用::運算符.

class Room
{
public $name;

function __construct($name="unnamed")
{
$this->name = $name ;
}
}

class House
{
//array of rooms
public $room;
}

//create empty house
$home = new house;

//add some rooms
$home->room[] = new Room("bedroom");
$home->room[] = new Room("kitchen");
$home->room[] = new Room("bathroom");

//show the first room of the house
print($home ->room[0]->name);
?> PHP有兩個特殊的命名空間:parent命名空間指向父類別,self命名空間指向目前的類別。範例6.6中顯示如何用parent命名空間來呼叫父類別中的建構子. 同時也用self來在建構函數中呼叫另一個類別方法.

class Animal file://動物
{
public $blood; file://熱血or冷血屬性
public $name;
public function __construct($blood, $name=NULL)
{
$this->blood = $blood;
if($name)
{
$ this->name = $name;
}
}
}

class Mammal extends Animal file://哺乳動物
{
public $furColor; file:/ /皮毛顏色
public $legs;

function __construct($furColor, $legs, $name=NULL)
{
parent::__construct("warm", $name);
$this->furColor = $furColor;
$this->legs = $legs;
}
}

class Dog extends Mammal
{

class Dog extends Mammal
{
function🎜>function __construct($furColor, $name)
{
parent::__construct($furColor, 4, $name);

self::bark();


function bark()
{
print("$this->name says 'woof!'");
}
}

$d = new Dog(" Black and Tan", "Angus");

?> 第四節介紹如何呼叫函數. 對於物件的成員來是這樣呼叫的:如果你需要在運行時確定變數的名稱,你可以用$this->$Property這樣的表達式. 如果你想呼叫方法,可以用$obj->$method().

你也可以用->運算子來傳回一個函數的值,這在PHP以前的版本中是不允許的. 例如,你可以寫一個像這樣的表達式: $obj->getObject()->callMethod(). 這樣避免了使用一個中間變數,也有助於實現某些設計模式,如Factory模式。 http://www.bkjia.com/PHPjc/314117.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314117.htmlTechArticle
一個物件實例的屬性是變數,就像PHP的其他變數一樣. 但是你必須使用-運算子來引用它們.不需要在屬性前使用美元符$. 例如, 6.1中列印User對...
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板