- 开发无止境 -
Data: 2018-11-28 21:00:32Form: JournalClick: 9
PHP
类进阶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 = "wqzbxh";
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();