文章教程

14.2.5访问对象的属性和方法

9/17/2020 9:26:54 PM 人评论 次浏览

14.2.5 访问对象的属性和方法

一个对象实例的属性是变量,就像PHP的其他变量一样,只不过必须使用->运算符来引用它们,但不需要在属性前使用符号$。访问方法和访问属性一样,使用->运算符用来指向实例的方法。对象的方法执行起来和普通函数几乎相同。

在前面讲述类的继承时讲到,如果一个类从另一类中继承而来,基类中的属性和方法将在派生类中都有效。即使在派生类中没有声明,基类中的方法和属性一样会在派生类中有效。如果要访问一个继承的属性,只需像访问基类自己的属性那样引用即可,使用:运算符。在PHP的类继承用法中,有两个特殊的命名空间:parent和self。parent命名空间指向父类,self命名空间指向当前类。代码14-4演示了它们的用法。

代码14-4 parent和self的用法14-4.php


01 <?php

02 class Animal//定义动物类(基类)

03 {

04 public$blood;//动物的热血和冷血属性

05 public$name;

06

07 public function__construct($blood,$name=NULL)//构造函数

08 {

09 $this->blood=$blood;

10 if($name)

11 {

12 $this->name=$name;

13 }

14 }

15 }

16

17 class Mammal extends Animal//哺乳动物,由Animal类派生

18 {

19 public$fur_color;//哺乳动物皮毛颜色属性

20 public$legs;

21 function__construct($fur_color,$legs,$name=NULL)//构造函数

22 {

23 parent::construct("warm",$name);

24 $this->fur_color=$fur_color;

25 $this->legs=$legs;

26 }

27 }

28

29 class Cat extends Mammal//Cat类,由Mammal派生

30 {

31 function__construct($fur_color,$name)//构造函数

32 {

33 parent:__construct($fur_color,4,$name);

34 self::bark();//调用该类的另一个方法bark()

35 }

36

37 function bark()//成员函数bark()

38 {

39 print("$this->name says,'mew~mew~'");

40 }

41 }

42

43 $cat_xiaobai=new Cat("white","XiaoBai");

44 ?>


【代码解析】这段代码显示了如何使用parent命名空间在派生类Mammal中来调用父类的构造函数,如代码第23行所示。同时也使用self在Cat类的构造函数中调用该类的另一个方法,如第34行所示。

教程类别