【转】PHP5.3亲测精华特性整理
1、引入 __DIR__ magic常量 定位脚本的目录
1 | echo __DIR__. "|" .dirname( __FILE__ );
|
Salin selepas log masuk
2、允许从2个值的or/and表达式快速的获取一个非空的值
1 | echo (1 ?: 0) . "|" . ( "" ?: 0). "|" . var_export( array () ?: array (1), true);
|
Salin selepas log masuk
3、类添加__callStatic方法,等价于 __call(),但它是为调用静态方法准备的。下面来看示例:
1 | class xxx{ function __call( $func , $args ){ echo "function name:" . $func ; echo "</br />" ; echo "args:" .var_export( $args , true); } static function __callStatic( $func , $args ){ echo "static function name:" . $func ; echo "</br />" ; echo "static args:" .var_export( $args , true); } } $x = new xxx(); $x ->testfunc( "oo" ); echo "</br />" ; xxx::teststatic( "xx" );
|
Salin selepas log masuk
4、动态的调用静态的方法
1 | class xx{ static function test(){ echo __METHOD__ ; } } $c = "xx" ; $m = "test" ; $c :: $m ();
|
Salin selepas log masuk
5、延迟静态绑定(静态处理从编译时延迟到执行时)
1 | class A{ static function whoami(){ echo __CLASS__ ; } static function say1(){ self::whoami(); } static function say2(){ static ::whoami(); } } class B extends A{ static function whoami(){ echo __CLASS__ ; } } class C extends A{ static function whoami(){ echo __CLASS__ ; } } B::say1(); C::say2();
|
Salin selepas log masuk
6、MySQLInd (高速的专门为PHP设计的MySQL调用库接口)
7、INI Magic
8、扩展的 OpenSSL 函数
9、SPL(Standard PHP Library) 优化
10、时间处理进行扩展了和添加
1 | $date = strtotime ( "11-05-17 00:00:00" ); echo date ( "Y-m-d" , $date ). "|" ; $date = date_create_from_format( "y-m-d" , "11-05-17" ); echo $date ->format( "Y-m-d" );
|
Salin selepas log masuk
11、垃圾回收器(为复杂和长时间运行脚本的执行结束周期释放内存的清理)
12、NOWDOC(不对HEREDOC进行转译)
1 | $fubar = "xxx" ; $xbar = <<<ONE this is HEREDOC $fubar ONE; $abar = <<< 'TWO' this is NOWDOC $fubar TWO; echo $xbar . "|" . $abar ;
|
Salin selepas log masuk
13、匿名函数体验
1 | $ofun = create_function( '$a, $b' , 'return $a*$b;' );
|
Salin selepas log masuk
14、闭包体验
1 | $arr = array (1, 2, 3, 5, 6, 7); $res = array_filter ( $arr , function ( $v ) { return $v >4; }); var_dump( $res ); function countnum(){ $num = 0; $testt = function () use (& $num ){ ++ $num ; echo $num ; }; return $testt ; } $t = countnum(); $t (); $t ();
|
Salin selepas log masuk
15、命名空间