PHP 文档学习 - 5 - 类
来源:互联网 发布:c语言中合法的字符常量 编辑:程序博客网 时间:2024/06/03 13:17
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()
- PHP 文档学习 - 5 - 类
- PHP 文档学习 - 4 - 函数
- PHP 文档学习 - 6 - traits
- php官方文档学习 w3c
- php生成文档类
- php生成文档类
- PHP 文档学习 - 1 - 基本语法
- PHP 文档学习 - 2 - 运算符
- PHP 文档学习 - 3 - 流程控制
- PHP 文档学习 - 7 - namespace & exception
- PHP 文档学习 - 8 - 遍历接口
- PHP 文档学习 - 9 - 序列化
- 如何文档化你的PHP类
- 小巧的php文档生成类
- PHP生成PDF文档的FPDF类
- Python3.5 文档学习笔记
- 学习文档
- 学习文档
- Where's Waldorf? - UVa10010 字符串简化处理
- core Animation学习笔记
- 题目1444:More is better
- cocos2dx 事件响应机制 CCNotificationCenter
- MySQL查看和修改表的存储引擎
- PHP 文档学习 - 5 - 类
- appStore上传苹果应用程序软件发布流程
- 学习 javascript高级程序设计 (第3版)-- 变量、作用域、内存问题
- 【几何】-几何基础大模板(更新中)
- 表达式计算
- POJ 1088 滑雪(DFS+DP)
- PHP的CI框架集成Smarty的最佳方式
- 详解android:scaleType属性
- ubuntu14.04 下安装H3C iNode客户端