Home >Backend Development >PHP Tutorial >Analysis of properties and methods of PHP5.0 object model_PHP tutorial

Analysis of properties and methods of PHP5.0 object model_PHP tutorial

WBOY
WBOYOriginal
2016-07-15 13:28:41796browse

What we introduce to you today is that can be used in conjunction with ->. If the properties of an object contain an object, you can use two -> operators to get the internal object. property. You can even place these expressions in double-quoted strings. In the following example, the property room in the object House contains a set of Room objects.

Accessing methods is similar to accessing properties. The -> operator is used to point to methods of an instance. Just call getLastLogin below. Methods execute almost the same as functions outside the class.

If a class inherits from another class, the properties and methods in the parent class will be valid in the subclass, even if they are not declared in the subclass. As mentioned before, inheritance is very powerful. If you want to access an inherited property, you just reference it as you would access the base class's own property, using the :: operator.

<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 object model has two special namespaces: the parent namespace points to the parent class, and the self namespace points to the current class. The following example shows how to use the parent namespace to call the constructor in the parent class. Self is also used to call another class method in the constructor.

<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>

is called like this for members of an object: If you need to determine the name of a variable at runtime, you can use an expression like $this->$Property. If you want to call a method, you can use $obj->$method().

You can also use the -> operator to return the value of a function, which was not allowed in previous versions of PHP. For example, you can write an expression in the PHP5.0 object model like this: $obj->getObject()->callMethod(). This avoids the use of an intermediate variable and also helps implement certain design patterns, such as Factory pattern.


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/446432.htmlTechArticleToday we introduce to you about the joint use ->, if the properties of an object contain an object, You can use the two -> operators to get properties of internal objects. You even...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn