本文總結(jié)分析了PHP5.3新特性。分享給大家供大家參考,具體如下:
1、命名空間 解決了類,函數(shù)和常量名沖突的問(wèn)題
2、靜態(tài)綁定 繼承時(shí)父類可以直接調(diào)用子類重寫(xiě)父類的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class A { public static function who() { echo __CLASS__ ; } public static function test() { static ::who(); // 后期靜態(tài)綁定從這里開(kāi)始 } } class B extends A { public static function who() { echo __CLASS__ ; } } B::test(); |
3、匿名函數(shù),也叫閉包函數(shù)(closures),允許 臨時(shí)創(chuàng)建一個(gè)沒(méi)有指定名稱的函數(shù)。最經(jīng)常用作回調(diào)函數(shù)
1
2
3
|
//匿名函數(shù)做回調(diào)函數(shù) uasort( $arr , function ( $a , $b ){ }) |
閉包函數(shù)也可以作為變量的值來(lái)使用
1
2
3
4
|
$fn = function ( $a ) { echo $a ; }; $fn (1); |
PHP會(huì)自動(dòng)把表達(dá)式轉(zhuǎn)換成內(nèi)置類Closure的 對(duì)象實(shí)例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$fn = function ( $a ) { echo $a ; }; ee( $fn ); /** * Closure Object ( [parameter] => Array ( [$a] => ) ) */ |
匿名函數(shù)目前是通過(guò)Closure類來(lái)實(shí)現(xiàn)的。目前還不穩(wěn)定,不適用于正式開(kāi)發(fā)
3、?: 操作符
1
2
3
|
$a = 0; $b = 2; ee( $a ?: $b ); # 2 類似js中的 || |
4、新增常量 __DIR_
5、新的垃圾回收機(jī)制,解決了循環(huán)引用的問(wèn)題
1
2
3
|
gc_enable(); // 激活循環(huán)引用收集器,默認(rèn)開(kāi)啟 var_dump(gc_collect_cycles()); // 強(qiáng)制回收已無(wú)效的變量 gc_disable(); // 禁用GC |
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。