• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

PHP 类与对象

Data: 2018-08-11 06:02:49Form: JournalClick: 10

# PHP 类与对象

  • 类是具有相同属性和操作的一组对象的集合

# 一、创建类

# 创建类
class Teacher{

}
# 调用类(实例化)
$ouyang = new Teacher();
$miejue = new Teacher();
$ximen = new Teacher();

# 二、复合数据类型

类型描述
object对象
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(){
        // 在类中使用伪变量: "$this" 引用当前类的成员变量
        return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
    }
    public function fun4(){
        // 在类中使用伪变量: "$this" 引用当前类的成员方法
        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(){
        // 在类中使用伪变量: "$this" 引用当前类的成员变量
        return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
    }
    public function fun4(){
        // 在类中使用伪变量: "$this" 引用当前类的成员方法
        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(){
        // 在类中使用伪变量: "$this" 引用当前类的成员变量
        return '姓名:'.$this->name.',学校:'.$this->school.'<hr/>';
    }
    public function fun4(){
        // 在类中使用伪变量: "$this" 引用当前类的成员方法
        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打印所需调试信息
Name:
<提交>