定义

  • static: 定义类属性和类方法(静态属性和静态方法)
  • final: 定义不可被子类继承的类和方法
  • const:定义类常量

访问

  • parent:类内访问父类属性和父类方法
  • self: 类内访问类属性和类方法
  • $this: 类内访问实例属性和实例方法

示例

<?php

// 父类
class Base{
// 实例属性
private $age;

public function __construct($age) {
$this->age = $age;
}

// 不可以被子类继承该方法
public final function getAge()
{
return $this->age;
}
}

// 子类
class Demo extends Base{
// 实例属性
private $name;

// 类属性
public static $count;

// 类常量,注意没有$
public const TYPE = 1;

public function __construct($age, $name) {
// 调用父类构造方法
parent::__construct($age);
$this->name = $name;
}

// 类方法
public static function getCount()
{
// 访问类属性
return self::$count;
}

// 类方法
public static function getType()
{
// 访问类常量
return self::TYPE;
}

// 实例方法
public function getName()
{
self::$count+=1;
return $this->name;
}
}

$demo = new Demo(12, 'Tom');

echo $demo->getAge() . PHP_EOL;
echo $demo->getName() . PHP_EOL;

echo Demo::getCount() . PHP_EOL;
echo Demo::getType() . PHP_EOL;

参考
php类中的$this,static,final,const,self这几个关键字使用方法