前言
通过对象的引用可以访问类中的成员属性和方法,这里需要使用特殊的运算符号:“->”。具体的语法格式如下:
<?php
$变量名 = new类名称(); //类的实例化
$变量名->成员属性 = 值; //为成员属性赋值
$变量名->成员属性; //直接获取成员的属性值
$变量名->成员方法; //访问对象中指定的方法
另外,用户还可以使用一些特殊的访问方法。
1.$this
$this存在于类的每一个成员方法中,是一个特殊的对象引用方法。成员方法属于哪个对象,$this引用就代表哪个对象,专门用于完成对象内部成员之间的访问。
2.操作符“::”
操作符“::”可以在没有任何声明实例的情况下访问类中的成员。使用的语法格式如下:
关键字::变量名/常量名/方法名
其中,关键字主要包括parent、self和类名3种。parent关键字表示可以调用父类中的成员变量、常量和成员方法。self关键字表示可以调用当前类中的常量和静态成员。类名关键字表示可以调用本类中的常量变量和方法。
下面通过实例介绍类的声明和实例化,具体代码如下:
<?php
class Student{
//定义成员属性
private $name;
private $gender;
//定义成员方法
function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
function setGender($gender){
$this->gender = $gender;
}
function getGender(){
return $this->gender;
}
}
//类实例化
$zhangsan = new Student();
$zhangsan->setName('张三');
$zhangsan->setGender('男');
$lisi = new Student();
$lisi->setName('李四');
$lisi->setGender('男');
echo $zhangsan->getName() . "的性别是:" . $zhangsan->getGender() ."\n";
echo $lisi->getName() . "的性别是:" . $lisi->getGender() ."\n";
?>
执行结果如下:
注:类名一般用大驼峰法(即开头首字母大写),变量和方法名用小驼峰(即开头首字母小写,其他的单词首字母大写)
- 用class关键字声明一个类,而这个类的名称是Student。在大括号内写入类的属性和方法。其中private $name、private $gender为类Student的自有属性,用private关键字声明,也就是说只有在类内部的方法可以访问它们,类外部是不能访问的。
- function setName($name)、function Getname()、function setGender($gender)和function getGender()就是类方法,可以对private $name、private $gender这两个属性进行操作。$this是对类本身的引用。用“->”连接类属性,格式如$this->name和$this->gender。
- 之后用new关键字生成一个对象,格式为$object = new Classname();,对象名是$zhangsan。当程序通过new生成一个类Student的实例,也就是对象$zhangsan的时候,对象$zhangsan就拥有了类Student的所有属性和方法。然后就可以通过“接口”,也就是这个对象的方法(也就是类的方法的副本)来对对象的属性进行操作。
- 通过接口setName($name)给实例$zhangsan的属性$name赋值为"张三",通过setGender($gender)给实例$zhangsan的属性$gender赋值为男。同样的道理,通过接口操作了实例$lisi的属性。最后通过接口getName()、getGender()返回不同的两个实例的属性$name和$gender,并且打印输出结果。