语言特色
1. PHP5允许定义类型。这就意谓着您可以定义一个方法中的变量或是类中的方法为一个具体的类型,但是您不能定义任何标量类型(boolean,integer,array…)。
2. foreach已经支持引用声明的变量。
3. 一些新的函数,尤其是字符串和数组函数已加入到php核心。
对象
1. PHP5中和类是通过引用来使用的。这就意谓着在使用时不会创建类的副本,而只是创建一个引用。
2. 常数,静态的方法或是属性可以在类中定义。
3. 方法或属性的可见度现在可以很好的调控,可以定义为:public, private 或者 protected。类或都是方法也可以在最后定义以防止进一步的继承权。
4. 由于对象开始用引用的方法使用。如果您需要生成一个对象的副本,可以使用提供的克隆机制和__clone()魔术方法。
5. PHP5不同类现在使用相同的构造器与析构器,类初始化时调用的方法为:初始化的方法为:__construct(),销毁时的方法为: __destruct()。
6. 增加接口与抽象类的支持,您现在可以更好看布署面向对象的代码,接口可以用来定义公共的APIs ,而抽象类提供类的模型来勾画具体的蓝图。
7. 现在可以使用__autoload()方法来装载类。
魔术方法
PHP5中引入的众多“神奇”的方法。
1. __get(),__set() 用于访问、定义一个未定义的类的属性。而__call()被用于调用一个未定义的类中的方法。
2. __isset用于向isset()传递一个未定义的属性时。
3. __unset用于向unset()传递一个未定义的属性时。
4. __toString()用于以字条串表示一个类时。
5. __set_state用于使用var_export()导出对象实例时。
新的扩展
1. simpleXML可以轻松的获取XML数据。
2. PHP5还引入了DOMXML, DOMXSL来解决基于libxml2的DOM和XSL的扩展。
3. 引入统一的能够访问多种类型数据库的PDO扩展。(PDO只是一个访问数据库的接口,数据库的操作还要自己编写查询语句。)
4. 新的hash取代原有的GPL算法,5.1.2版本中中它被加入到PHP核心,您可以使用多种的算法,如:md5,sha1 以及一些更安全(尽管慢) 算法,如snefru 。
5. 标准的PHP库(SPL)提供许多接口以提高PHP语言类的粘度,包括新的迭代器接口。
6. 新的Reflection映射扩展的加入。
原文出自:Differences Between PHP 4 and 5 本人只做了粗浅的翻译,如有不正确的地方还望指正!
PHPLAMP博客是专注于网站建设,搜索引擎研究,网站推广,网站优化的IT博客。