通过对象的引用可以访问类中的成员属性和方法,这里需要使用特殊的运算符号:“->”。具体的语法格式如下:
$变量名=new类名称(); //类的实例化
$变量名->成员属性=值; //为成员属性赋值
$变量名->成员属性; //直接获取成员的属性值
$变量名->成员方法; //访问对象中指定的方法
另外,用户还可以使用一些特殊的访问方法。
1.$this
$this存在于类的每一个成员方法中,是一个特殊的对象引用方法。成员方法属于哪个对象,$this引用就代表哪个对象,专门用于完成对象内部成员之间的访问。
2.操作符“::”
操作符“::”可以在没有任何声明实例的情况下访问类中的成员。使用的语法格式如下:
关键字:::变量名/常量名/方法名
其中,关键字主要包括parent、self和类名3种。parent关键字表示可以调用父类中的成员变量、常量和成员方法。self关键字表示可以调用当前类中的常量和静态成员。类名关键字表示可以调用本类中的常量变量和方法。
下面通过实例介绍类的声明和实例的生成。
运行结果如图8-1所示。
【案例分析】
(1)用class关键字声明一个类,而这个类的名称是guests。在大括号内写入类的属性和方法。其中private $name、private $gender为类guests的自有属性,用private关键字声明,也就是说只有在类内部的方法可以访问它们,类外部是不能访问的。
(2)function setname($name)、function getname()、function setgender($gender)和function getgender()就是类方法,可以对private $name、private $gender这两个属性进行操作。$this是对类本身的引用。用“->”连接类属性,格式如$this->name和$this->gender。
(3)之后用new关键字生成一个对象,格式为$object = new Classname;,对象名是$xiaoming。当程序通过new生成一个类guests的实例,也就是对象$xiaoming的时候,对象$xiaoming就拥有了类guests的所有属性和方法。然后就可以通过“接口”,也就是这个对象的方法(也就是类的方法的副本)来对对象的属性进行操作。
(4)通过接口setname($name)给实例$xiaoming的属性$name赋值为XiaoMing,通过setgender($gender)给实例$xiaoming的属性$gender赋值为male。同样的道理,通过接口操作了实例$lili的属性。最后通过接口getname()、getgender()返回不同的两个实例的属性$name和$gender,并且打印出来。