0010-PHP8 类与对象

PHP-教程   2023-04-18 17:18   544   0  

类与对象

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

1、创建类

# 创建类
class Teacher{

}
# 调用类(实例化)
$xiaoming = new Teacher();
$xiaohong = new Teacher();
$xiaogang = new Teacher();

2、复合数据类型

类型描述
object对象
var_dump($xiaoming);
var_dump($xiaohong);
var_dump($xiaogang);

3、对象

var_dump($xiaoming == $xiaohong);
echo '<hr/>';
var_dump($xiaohong == $xiaogang);
echo '<hr/>';
var_dump($xiaoming == $xiaogang);

4、成员变量

  • 成员变量,也叫: 类属性

class Teacher{
 public $name = '小红';
 public $school = 'PHP';
}
$xiaoming = new Teacher();
echo $xiaoming->name;
echo '<hr/>';
echo $xiaoming->school;

5、成员方法

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();
  • 类里成员有两种:属性(变量)和行为(方法)

4、魔术方法

方法描述
__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打印所需调试信息


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。