类的定义,使用class关键字;事例化一个对象时,用new关键字,并赋值给一个变量;$this可以在方法内使用,表示调用此方法的对象;调用对象字段时,格式是$obj->field(注意字段名不加$),调用对象方法时,格式是$obj->function(),例子如下:
class Animal
{
// 成员声明
public $name = 'None';
// 方法声明
public function ShowInfo() {
echo "My name is " . $this->name;
}
}
$obj1 = new Animal();
var_dump($obj1); //查看定义的对象
echo $obj1->name; //调用属性
$obj1->ShowInfo(); //调用方法
?> 类的继承
一个类可以在声明中用 extends 关键字继承另一个类的方法和成员。不能扩展多个类,只能继承一个基类。被继承的方法和成员可以通过用同样的名字重新声明被覆盖,除非父类定义方法时使用了final关键字。可以通过parent:: 来访问被覆盖的方法或成员。
class Animal
{
// 成员声明
public $name = 'None';
// 方法声明
public function ShowInfo() {
echo "My name is " . $this->name;
}
}
// Dog继承Animal
class Dog extends Animal
{
// 添加新的属性
public $age = 0;
// 覆盖原有的ShowInfo()方法
public function ShowInfo() {
echo "The Dog's name is " . $this->name . ". And It's age is " . $this->age ;
}
// 添加新的方法
public function Bark() {
echo "Bark Bark Bark!!!";
}
}
$obj1 = new Dog();
$obj1->name = "Dolly";
$obj1->age = 2;
$obj1->ShowInfo();
$obj1->Bark();
?>