ホームページ > バックエンド開発 > PHPチュートリアル > PHP5.0オブジェクトモデルのプロパティとメソッドの解析_PHPチュートリアル

PHP5.0オブジェクトモデルのプロパティとメソッドの解析_PHPチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-15 13:28:41
オリジナル
809 人が閲覧しました

今日は -> と組み合わせて使用​​できる について紹介します。オブジェクトのプロパティにオブジェクトが含まれている場合、2 つの -> 演算子を使用して内部オブジェクトのプロパティを取得できます。 これらの式を二重引用符で囲んだ文字列内に置くこともできます。 次の例では、オブジェクト House 内のプロパティの部屋に一連の Room オブジェクトが含まれています。

アクセスメソッドはアクセスプロパティに似ています。 -> 演算子は、インスタンスのメソッドを指すために使用されます。 以下の getLastLogin を呼び出すだけです。メソッドは、クラス外の関数とほぼ同じように実行されます。

クラスが別のクラスから継承する場合、親クラスのプロパティとメソッドは、サブクラスで宣言されていない場合でも、サブクラスで有効になります。 前述したように、継承は非常に強力です。 継承されたプロパティにアクセスする場合は、基本クラス独自のプロパティにアクセスする場合と同じように、:: 演算子を使用してそのプロパティを参照するだけです。

<ol class="dp-xml">
<li class="alt"><span><span>class Room   </span></span></li>
<li class=""><span>{   </span></li>
<li class="alt"><span> public $name;   </span></li>
<li class=""><span> </span></li>
<li class="alt">
<span> function __construct($</span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"unnamed"</font></span><span>)   </span>
</li>
<li class=""><span> {   </span></li>
<li class="alt">
<span>$this-></span><span class="attribute"><font color="#ff0000">name</font></span><span> = $name;   </span>
</li>
<li class=""><span> }   </span></li>
<li class="alt"><span>}   </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>class House   </span></li>
<li class=""><span>{   </span></li>
<li class="alt"><span> //array(促销产品 主营产品) of rooms   </span></li>
<li class=""><span> public $room;   </span></li>
<li class="alt"><span>}   </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>//create empty house   </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">home</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> house;   </span>
</li>
<li class="alt"><span> </span></li>
<li class=""><span>//add some rooms   </span></li>
<li class="alt"><span>$home->room[] = new Room("bedroom");   </span></li>
<li class=""><span>$home->room[] = new Room("kitchen");   </span></li>
<li class="alt"><span>$home->room[] = new Room("bathroom");   </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>//show the first room of the house   </span></li>
<li class=""><span>print($home->room[0]->name);   </span></li>
<li class="alt"><span>?>  </span></li>
</ol>
ログイン後にコピー


PHP5.0 オブジェクト モデルには 2 つの特別な名前空間があります。親名前空間は親クラスを指し、自己名前空間は現在のクラスを指します。次の例は、親名前空間を使用して親クラスのコンストラクターを呼び出す方法を示しています。 Self は、コンストラクターで別のクラス メソッドを呼び出すためにも使用されます。

<ol class="dp-xml">
<li class="alt"><span><span>class Animal //动物   </span></span></li>
<li class=""><span>{   </span></li>
<li class="alt"><span> public $blood; //热血or冷血属性   </span></li>
<li class=""><span> public $name;   </span></li>
<li class="alt">
<span> public function __construct($blood, $</span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">NULL</font></span><span>)   </span>
</li>
<li class=""><span> {   </span></li>
<li class="alt">
<span>$this-></span><span class="attribute"><font color="#ff0000">blood</font></span><span> = $blood;   </span>
</li>
<li class=""><span>if($name)   </span></li>
<li class="alt"><span>{   </span></li>
<li class="">
<span> $this-></span><span class="attribute"><font color="#ff0000">name</font></span><span> = $name;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li class=""><span> }   </span></li>
<li class="alt"><span>}   </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>class Mammal extends Animal //哺乳动物   </span></li>
<li class=""><span>{   </span></li>
<li class="alt"><span> public $furColor; //皮毛颜色   </span></li>
<li class=""><span> public $legs;   </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span> function __construct($furColor, $legs, $</span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">NULL</font></span><span>)   </span>
</li>
<li class="alt"><span> {   </span></li>
<li class=""><span>parent::__construct("warm", $name);   </span></li>
<li class="alt">
<span>$this-></span><span class="attribute"><font color="#ff0000">furColor</font></span><span> = $furColor;   </span>
</li>
<li class="">
<span>$this-></span><span class="attribute"><font color="#ff0000">legs</font></span><span> = $legs;   </span>
</li>
<li class="alt"><span> }   </span></li>
<li class=""><span>}   </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>class Dog extends Mammal   </span></li>
<li class="alt"><span>{   </span></li>
<li class=""><span> function __construct($furColor, $name)   </span></li>
<li class="alt"><span> {   </span></li>
<li class=""><span>parent::__construct($furColor, 4, $name);   </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>self::bark();   </span></li>
<li class="alt"><span> }   </span></li>
<li class=""><span> </span></li>
<li class="alt"><span> function bark()   </span></li>
<li class=""><span> {   </span></li>
<li class="alt"><span>print("$this->name says 'woof!'");   </span></li>
<li class=""><span> }   </span></li>
<li class="alt"><span>}   </span></li>
<li class=""><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">d</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> Dog("Black and Tan", "Angus");   </span>
</li>
<li class=""><span>?>  </span></li>
</ol>
ログイン後にコピー

オブジェクトのメンバーは次のように呼び出されます: 実行時に変数の名前を決定する必要がある場合は、$this->$Property のような式を使用できます。 メソッドを呼び出したい場合は、$obj->$method() を使用できます。

-> 演算子を使用して関数の値を返すこともできますが、これは PHP の以前のバージョンでは許可されていませんでした。たとえば、$obj->getObject()->callMethod() のように、PHP5.0 オブジェクト モデルで式を作成できます。これにより、中間変数の使用が回避され、ファクトリ パターンなどの特定の設計パターンの実装にも役立ちます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446432.html技術記事今日は -> の使用について紹介します。オブジェクトのプロパティにオブジェクトが含まれている場合、2 つの -> 演算子を使用して内部オブジェクトのプロパティを取得できます。 あなたは本当に...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート