class Dog { public $name; public $numLegs = 4; public function __construct($name) { //构造器可以带形参也可以不带形参 $this->name = $name; //若要对类内成员赋值,需用$this->成员名 的形式赋值。 } //……}
构造器在定义对象时自动被调用。
$dog = new Dog(“Tom”);echo $dog->name;//输出Tom。
**方法的定义及调用**在类内可以自定义方法。
class Dog { public $name; public $numLegs = 4; public function __construct($name) { $this->name = $name; } public function greet() { //方法可以带形参也可以不带 return “Hello, my name is ” . $name . “.”; //方法可以有返回值也可以没有 } //……}
方法的调用类似公有成员的调用,()不可省略。
$dog = new Dog(“Tom”);echo $dog->greet();//输出Hello, my name is Tom.
$square = new Square();if (property_exists($square, "hasSides")) { echo "I have sides!";}//有输出,输出I have sides!
php的类继承与C++中的类继承一样,子类会继承父类的所以公有成员和方法。
**重写父类方法,`final`**
php支持在子类中重写父类中的方法,并且在调用时调用的为子类重写后的方法。
class Vehicle { public function honk() { return "HONK HONK!"; }}class Bicycle extends Vehicle { public function honk() { //父类方法的重写 return "Beep beep!"; }}
调用子类方法
$bicycle = new Bicycle();echo $bicycle->honk();//将输出Beep beep!