# PHP
类与对象
# 一、创建类
class Teacher{
}
$ouyang = new Teacher();
$miejue = new Teacher();
$ximen = new Teacher();
# 二、复合数据类型
var_dump($ouyang);
var_dump($miejue);
var_dump($ximen);
# 三、对象
var_dump($ouyang == $miejue);
echo '<hr/>';
var_dump($miejue == $ximen);
echo '<hr/>';
var_dump($ouyang == $ximen);
# 四、成员变量
class Teacher{
public $name = '灭绝师太';
public $school = 'PHP中文网';
}
$ouyang = new Teacher();
echo $ouyang->name;
echo '<hr/>';
echo $ouyang->school;
# 五、成员方法
class Teacher{
public $name = '灭绝师太';
public $school = 'PHP中文网';
public function fun1(){
echo '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun2(){
return '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun3(){
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
public function fun4(){
return $this->fun3();
}
}
$yangmi = new Teacher();
$yangmi->fun1();
echo $yangmi->fun2();
echo $yangmi->fun3();
echo $yangmi->fun4();
# 六、魔术方法
方法 | 描述 |
---|
__construct | 构造方法 |
__destruct | 析构方法 |
class Teacher{
public $name;
public $school;
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function fun1(){
echo '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun2(){
return '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun3(){
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
public function fun4(){
return $this->fun3();
}
}
$obj = new Teacher('西门大官人','PHP中文网');
echo $obj->fun4();
class Teacher{
public $name;
public $school;
public function __construct($name, $school){
$this->name = $name;
$this->school = $school;
}
public function fun1(){
echo '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun2(){
return '姓名:灭绝师太,学校:PHP中文网<hr/>';
}
public function fun3(){
return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
}
public function fun4(){
return $this->fun3();
}
public function __destruct(){
echo '类执行完毕,要关闭了';
}
}
$obj = new Teacher('西门大官人','PHP中文网');
echo $obj->fun3();
方法 | 描述 |
---|
__call | 在对象中调用一个不可访问方法时调用 |
__callStatic | 用静态方式中调用一个不可访问方法时调用 |
__get | 获得一个类的成员变量时调用 |
__set | 设置一个类的成员变量时调用 |
__isset | 当对不可访问属性调用 isset()或 empty()时调用 |
__unset | 当对不可访问属性调用 unset()时被调用 |
__sleep | 执行 serialize()时,先会调用这个函数 |
__wakeup | 执行 unserialize()时,先会调用这个函数 |
__toString | 类被当成字符串时的回应方法 |
__invoke | 调用函数的方式调用一个对象时的回应方法 |
__set_state | 调用 var_export()导出类时,此静态方法会被调用 |
__clone | 当对象复制完成时调用 |
__autoload | 尝试加载未定义的类 |
__debugInfo | 打印所需调试信息 |