オブジェクト
オブジェクト インスタンスのプロパティは、PHP の他の変数と同様に変数です。ただし、それらを参照するには -> 演算子を使用する必要があります。属性の前にドル記号 $ を使用する必要はありません。
-> と組み合わせて使用できます。オブジェクトのプロパティにオブジェクトが含まれている場合、2 つの -> 演算子を使用して、以下の二重参照文字列に配置することもできます。この例では、オブジェクト House 内のプロパティの部屋には、Room オブジェクトのセットが含まれています。
アクセスメソッドはアクセスプロパティと似ています。 -> 演算子は、次のように getLastLogin を呼び出すだけでインスタンスのメソッドを指定するために使用されます。メソッドは、クラス外の関数とほぼ同じように実行されます。
クラスが別のクラスから継承する場合、サブクラスで宣言されていなくても、親クラスのプロパティとメソッドはサブクラスでも有効になります。前に述べたように、継承は非常に強力です。継承されたプロパティにアクセスしたい場合は、基本クラスの独自のプロパティにアクセスする場合と同じように、 :: 演算子を使用して参照するだけです。
function __construct($name="unnamed")
{
$this->name = $name;
}
}
class House
{
//部屋の配列
public $room
}
/ /空の家を作成
$home = 新しい家;
//いくつかの部屋を追加
$home->room[] = new Room("bedroom");
$home->room[] = new Room(" キッチン") );
$home->room[] = new Room("バスルーム");
//家の最初の部屋を表示
print($home->room[0]->name); PHP には 2 つの特別な名前空間があります。親名前空間は親クラスを指し、自己名前空間は現在のクラスを指します。次の例は、親名前空間を使用して親クラスのコンストラクターを呼び出す方法を示しています。また、self を使用してコンストラクター内の別のクラス メソッドを呼び出します。
class Animal //Animal
{
public $blood; //熱血属性か冷血属性
public $name;
public function __construct($blood, $name=NULL)
{
$this->blood = $blood;
if($name)
{
$this->name = $name;
}
}
class Mammal extends Animal //Mammal
{
public $furColor
public; $legs;
関数 __construct($furColor, $legs, $name=NULL)
{
parent::__construct("warm", $name);
$this->furColor = $furColor;脚 = $ 脚
}
}
class Dog extends Mammal
{
function __construct($furColor, $name)
{
parent::__construct($furColor, 4, $name)
self::bark; ();
}
function bark()
{
print("$this->名前は「ワンワン!」と言う)
}
}
$d = new Dog("ブラック・アンド・タン", "アンガス" ");
?>
オブジェクトのメンバーは次のように呼び出されます: 実行時に変数の名前を決定する必要がある場合は、$this->$Property のような式を使用できます。 メソッドを呼び出したい場合は、$obj->$method() を使用できます。
-> 演算子を使用して関数の値を返すこともできますが、これは PHP の以前のバージョンでは許可されていませんでした。たとえば、$obj->getObject()->callMethod() のような式を作成できます。これにより、中間変数の使用が回避され、ファクトリ パターンなどの特定の設計パターンの実装にも役立ちます。