您的位置:首页 > 职场人生

php5.3以后各版本的特性(主要是整理一下面试用的)

2015-07-31 23:01 453 查看
现在面试,对方特别喜欢让你回答PHP5.X各版本之间的特性。

有的时候一下子又愣住了回答不上了,有的新内容在工作中其实已经在用了,但是自己也从来没去理会什么新不新的。

只好现成的整理一下,免得再疏忽了。

具体代码就不帖了,网上一大堆。

PHP5.3

1. 支持命名空间 (Namespace)

概念:主要是方便多个重名的类文件的加载和调用。

在工作中可能会用到,不过暂时也没感觉有太要用的。

*命名空间的分隔符为反斜杆\

2. 支持延迟静态绑定(Late Static Binding)

概念:这是被动的改动,主要是面向对象里面。

体现在子类继承父类之后,对父类方法调用的一些问题。

增加了一个static关键字来引用当前类,即实现了延迟静态绑定。这个具体可以网上查一下。

3. 支持goto语句

概念:老概念的东西,C里面的,5.3拿了回来。

4. 支持闭包、Lambda/Anonymous函数

概念:闭包就相当于把一个方法赋值给一个变量。

5. 新增两个魔术方法__callStatic()和__invoke()

概念:

__callStatic()的意思就是调用类中不存在的静态方法时启动这个方法。*__call()是调用不存在的方法时启动。

__invoke()调用类的里面的方法时被唤醒。可以把new 出来的 对象当方法来使用。

6. 新增Nowdoc语法

概念:原来就有一个叫Heredoc,其实两个就是一个相当于双引号包括,一个相当于单引号包括。

7. 在类外也可使用const来定义常量

概念:

const 
CONSTANT = 
'Hello World'
;


用来取代原来的define()

8. 三元运算符增加了一个快捷书写方式:

概念:

原本格式为是(expr1) ? (expr2) : (expr3)

如果expr1结果为True,则返回expr2的结果。

PHP5.3新增一种书写方式,可以省略中间部分,书写为expr1 ?: expr3

9. HTTP状态码在200-399范围内均被认为访问成功

概念:好像没什么特别用

10.支持动态调用静态方法

就是可以用变量来替代静态方法的名称

11、新魔法常量__DIR

概念:得到目录,原先有个__FILE

其它的还有性能的提升,mysql驱动mysqlnd转为核心,mysql性能提升。推出了一种phar的程序打包。

开始抛弃ereg类的方法。

PHP5.4

1、trait

PHP5.4后新增traits实现代码复用机制,Trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开。

简单地来说,traits就像是一个集合,这个集合可以给任意的类使用。

用use去加载,性质如同include一般。

2、Array dereferencing support

一种写法,可以把数组写成

$name =
explode(",",
"Laruence,male")[0];

寒……这个我一直在用的,没想到是5.4加的特性- -

3、DTrace support

一个性能分析工具,或许能用到吧。

4、Webserver SAPI

可以把PHP直接当成WEB服务器来用。

5、Upload progress

Session提供了上传进度支持,通过$_SESSION["upload_progress_name"]就可以获得当前文件上传的进度信息。


6、mysqlnd成为默认的数据库驱动

7、可以直接echo二进制

8、magic_quotes 被移除

9、$_SERVER["REQUEST_TIME_FLOAT"]

计算服务器的请求时间

10、函数类型提示的增强,这和JAVA的判定类似

比如函数function foo( array items){}

items变量加了array,就表示必须传入一个数组变量。

11、支持 Class::{expr}() 语法

12、Callable typehint

11和12不是特别理解。最好是要写一下代码测试一下,不过现在没环境,暂时先不写,先了解一下。

php5.5

1、opcache的引用。新的缓存技术,取代APC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: