您现在的位置是:首页 > 学无止境
PHP V5.3 中的新特性
- 支持命名空间 ( Namespace )
在PHP5.3之前,惯例的划分Package的办法是通过目录名来分隔代码文件,代码中的类名则用下划线_来表示目录。例如
这样的命名方式被PEAR、Zend Framework及各种PHP项目广泛采用。虽然该方法可以避免不同包或类库中的类名产生冲突,但在书写代码的时候显得较为麻烦和笨拙。
- 支持延迟静态绑定( Late Static Binding )
这和我们的预期不同,我们原来想得到子类的相应结果。
- 支持 goto 语句
if
语句。
- 支持闭包、 Lambda/Anonymous 函数
create_function()
在代码运行时创建函数。但有一个问题:创建的函数仅在运行时才被编译,而不与其它代码同时被编译成执行码,因此我们无法使用类似APC这样的执行码缓存来提高代码执行效率。
在
PHP5.3
中,我们可以使用
Lambda/
匿名函数来定义一些临时使用(即用即弃型)的函数,以作为
array_map()/array_walk()
等函数的回调函数。
- 新增两个魔术方法 __callStatic() 和 __invoke()
PHP 中原本有一个魔术方法__call(),当代码调用对象的某个不存在的方法时该魔术方法会被自动调用。新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用。
以函数形式来调用对象时,__invoke()方法将被自动调用。
- 新增Nowdoc语法,用法和Heredoc类似,但使用单引号。Heredoc则需要通过使用双引号来声明。
支持通过Heredoc来初始化静态变量、类成员和类常量。
- 在类外也可使用const来定义常量
PHP5.3 新增了一种常量定义方式:
- 三元运算符增加了一个快捷书写方式: ?:
如果expr1结果为True,则返回expr2的结果。
如果expr1结果为True,则返回expr1的结果
- HTTP 状态码在200-399范围内均被认为访问成功
- 支持动态调用静态方法
- 支持嵌套处理异常(Exception)
- 新的垃圾收集器(GC),并默认启用
1. 修复了大量bug
2. PHP 性能提高
3. php.ini 中可使用变量
ereg
正则表达式函数
不再默认可用,请使用速度更快的
PCRE
正则表达式函数
其余参考:
http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new1/
http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new2/
http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new3/
http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new4/index.html
http://www.ibm.com/developerworks/cn/opensource/os-php-5.3new5/index.html
上一篇:html实体
下一篇:echo的逗号与点号
文章评论
- 登录后评论
点击排行
-
php-fpm安装、配置与优化
转载自:https://www.zybuluo.com/phper/note/89081 1、php中...
-
centos下postgresql的安装与配置
一、安装(以root身份进行)1、检出最新的postgresql的yum配置从ht...
-
Mysql的大小写敏感性
MYSQL在默认的情况下查询是不区分大小写的,例如:CREATE TABLE...
-
关于URL编码
转载自:http://www.ruanyifeng.com/blog/2010/02/url_encoding....
-
header中的Cache-control
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的...