PHP 文档学习 - 5 - 类

本文深入探讨PHP面向对象编程的核心概念和技术,包括类定义、自动加载、构造与析构函数、访问权限、抽象类与接口、魔术方法等内容,并介绍了如何正确使用这些特性来构建高效、可维护的软件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基本概念

(1) 类名大小写不敏感

(2) 实例化的另一种方法 :

class Foo {}

$className = 'Foo';
$instance = new $className;

(3) 在类定义内部可以使用 new self / static / parent 创建新对象

(4) final 能阻止子类继承或方法覆盖( 方法覆盖时参数列表需保持一致, 构造函数除外 ), 且final 只能修饰类名和类的成员函数

(5) ClassName::class 能获得类的完全限定名称( 包括命名空间 ) 


2. 类常量

(1) 关键字 const, 名称不能加 $, 大小写敏感

(2) 类常量用范围解析操作符 :: 读取, 可以看出类常量为类的静态属性

(3) 类常量不能用 public, protected, private 等修饰, 访问权限为 public


3. 自动加载

参照全局魔法方法  __autoload(), sql_autoload_register()


4. 构造函数, 析构函数

(1) 继承时如果覆盖了构造 / 析构函数, 子类不会隐式调用父类的构造函数和析构函数, 需要显示调用 ( 注意构造和析构顺序 )

(2) 继承时如果子类构造函数中显示调用父类构造函数, 注意输入参数不匹配可能导致的问题 ( 例如中断需要该参数的语言..)


5. 访问权限

(1) 类成员默认访问权限为 public

(2) 同一个类的不同实例可以互相访问对方的任何属性 ( 包括私有属性和保护属性 )


6. 抽象类

(1) 子类实现父类的抽象方法, 参数类型和数量必须要匹配或添加默认参数

(2) 子类实现的父类的抽象方法, 访问权限可以更宽松

(3) 抽象方法不能声明 static


7. 接口

(1) 接口名大小写不敏感

(2) 实现多个接口的时候, 若有重名方法参数列表须保持一致 ( PHP 不支持函数重载 )

(3) 接口可声明静态方法

(4) 接口声明的常量不能被覆盖

(5) 接口继承接口使用 extends, 类实现接口使用 implements


8. 重载

(1) 指环境访问对象不存在的属性 / 方法时对象触发的行为

(2) 通过魔术方法实现, 这些方法必须声明为 public, 且参数不能用引用传递

          属性重载 : public void __set ( string $name , mixed $value )
                             public mixed __get ( string $name )
                             public bool __isset ( string $name )
                             public void __unset ( string $name )

          方法 重载: public mixed __call ( string $name , array $arguments )
                             public static mixed __callStatic ( string $name , array $arguments )


9. 遍历对象

(1) 使用 foreach 能遍历可见属性( 包括从父类继承的属性 ) ( 可见由上下文环境决定, 类定义内部使用关键词 $this )

(2) 实现预定义接口 Iterator 


10. 魔术方法

常用 : __construct(), __desruct(), __toString(), __clone()


11. 比较

(1) == : 全部属性相等或指向同一个对象

(2) === : 指向同一个对象


12. 类型约束

(1) 基本类型, Traits不能使用约束

(2) 参数默认值为 NULL 才能使用 NULL


13. 序列化

(1) 序列化相关: serialize(), __sleep()

(2) 反序列化相关: unserialize(), __wakeup()

基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值