static
关键词定义静态成员
class Teacher{
public static $name;
public static $school;
public static $gongfu = 'PHP';
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
protected function fun1(){
echo '姓名:小红,学校:PHP教程<hr/>';
}
private function fun2(){
return '姓名:小红,学校:PHP教程<hr/>';
}
public function fun3(){
// 在类中使用伪变量: "$this" 引用当前类的成员变量
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
public function fun4(){
// 在类中使用伪变量: "$this" 引用当前类的成员方法
return $this->fun3();
}
public static function fun5(){
// 在类中使用伪变量: "$this" 引用当前类的成员变量
return '姓名:'.Teacher::$name.',学校:'.Teacher::$school.'<hr/>';
}
// 析构方法
public function __destruct(){
echo '类执行完毕,要关闭了';
}
}
echo Teacher::$gongfu;
Teacher::$name = '小明';
Teacher::$school = 'PHP教程';
echo Teacher::fun5();
abstract
关键词定义抽象方法/抽象类
abstract class Teacher{
protected $name;
private $school;
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function fun3(){
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
abstract public function fun4();
}
// 子类代码复用
class PHPTeacher extends Teacher{
public function fun5(){
return $this->fun3();
}
public function fun4(){
return '我是继承后重写的方法';
}
}
$obj2 = new PHPTeacher('小明','PHP中文网');
echo $obj2->fun4();
echo $obj2->fun5();
interface
关键词创建接口。要求类必须实现的方法,但不需要定义方法的具体实现过程
implements
关键词使用接口
interface file{
public function noTF($param);
public function noZY($param);
}
class Teacher implements file{
protected $name;
private $school;
public $noTF;
public $noZY;
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function noTF($param){
$this->noTF = $param;
}
public function noZY($param){
$this->noZY = $param;
}
public function fun1(){
return '我是'.$this->name.','.$this->noTF.$this->noZY;
}
}
$obj = new Teacher('小刚','PHP教程');
$obj->noTF('我没有人民币,');
$obj->noZY('我没有美元。');
echo $obj->fun1();
const
创建常量
interface file{
const HOST = "localhost";
const DB = "php";
const USER = "root";
const PASSWORF = "root";
public function noTF($param);
public function noZY($param);
}
class Teacher implements file{
private $host = file::HOST;
private $db = file::DB;
private $user = file::USER;
private $password = file::PASSWORF;
protected $name;
private $school;
public $noTF;
public $noZY;
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function noTF($param){
$this->noTF = $param;
}
public function noZY($param){
$this->noZY = $param;
}
public function fun1(){
return '我是'.$this->name.','.$this->noTF.$this->noZY;
}
public function fun2(){
return $this->host . '<hr/>' . $this->db . '<hr/>' . $this->user . '<hr/>' . $this->password;
}
}
$obj = new Teacher('小刚','PHP教程');
echo $obj->fun2();
# 创建常量
define('HOST','127.0.0.1');
echo HOST;
echo '<hr/>';
# 创建常量
const NAME = 'PHP中文网';
echo NAME;
关键词 | 类外声明 | 声明类 | 声明属性 | 声明方法 | 解释 |
---|---|---|---|---|---|
const | √ | √ | 定义类常量 | ||
extends | √ | 扩展类,用一个类去扩展它的父类 | |||
public | √ | √ | 公用属性或方法 | ||
protected | √ | √ | 私有属性或方法 | ||
private | √ | √ | 受保护的属性或方法 | ||
static | √ | √ | √ | 静态成员 | |
abstract | √ | √ | 抽象类或方法 | ||
interface | √ | 创建接口 | |||
implements | √ | 实现接口 | |||
final | √ | √ | 类不能被继承 | ||
parent:: | 访问父类 | ||||
$this-> | 访问本类 | ||||
self:: | 访问本类静态 | ||||
namespace | √ | 创建命名空间 |
final
类不能被继承
final class Teacher{
public $name;
public $school;
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function fun3(){
// 在类中使用伪变量: "$this" 引用当前类的成员变量
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
}
// 子类代码复用
class PHPTeacher extends Teacher{
}
// 实例化
$obj = new PHPTeacher('小明','PHP教程');
echo $obj->fun3();
parent::
访问父类
class Teacher{
public $name;
public $school;
// 构造方法
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function fun3(){
// 在类中使用伪变量: "$this" 引用当前类的成员变量
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
}
// 子类代码复用
class PHPTeacher extends Teacher{
public function fun3(){
return parent::fun3();
}
}
// 实例化
$obj = new PHPTeacher('小明','PHP教程');
echo $obj->fun3();
self::
访问本类静态
class Teacher{
public static $name;
public static $school;
public static $gongfu = 'PHP';
public static function fun5(){
// 在类中使用伪变量: "$this" 引用当前类的成员变量
return '姓名:'.self::$name.',学校:'.self::$school.'<hr/>';
}
}
echo Teacher::$gongfu;
Teacher::$name = '小明';
Teacher::$school = 'PHP教程';
echo Teacher::fun5();