PHP 5类的新特性解析
PHP5 的对象模型改动挺大,不只是语法上更像 Java、C++那一挂,底层也彻底重写了,性能提了不少,写法也灵活了不少。如果你之前用的是 PHP4 那一套,用起来一开始不太习惯,但上手之后,真香。
类的构造函数统一用__construct
,不再靠类名那一套,清爽不少。还有__destruct
析构函数,内存回收更靠谱,尤其是文件或数据库连接时挺实用。
访问控制这块儿也补上了,支持public
、private
和protected
,和 C++那套挺像的。以前都能随便访问,容易出事,现在总算能加点限制,写库的时候更放心。
对象是引用传递,这个变化可得留意。以前拷贝一个对象是复制,现在是指向同一个实例,操作一个另一个也跟着变。要做深拷贝,就得手动实现__clone
方法。
还有instanceof
判断对象类型、final
防止类/方法被继承或重写,写框架的人应该挺爱这些小细节。
想更细看看,可以顺着这篇《PHP5 面向对象:类特性》再挖一下,讲得还挺系统的。
顺带一提,如果你对别的语言的对象模型也感兴趣,可以看看:
- C++对象模型 —— 语法老硬核了,但还是值得研究
- Python 对象模型解析 —— 动态语言的典型代表,挺灵活
- JavaScript 中的对象模型 —— 原型链的事,绕是有点绕
如果你还停留在 PHP4 那一套,建议赶紧上手试试 PHP5 的对象系统,封装性和扩展性都强不少,写起代码来也更有体系感。
1.49KB
文件大小:
评论区