六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 27|回复: 0

[转]php5.3的新特性列表

[复制链接]

升级  2.67%

60

主题

60

主题

60

主题

举人

Rank: 3Rank: 3

积分
208
 楼主| 发表于 2013-1-26 13:50:03 | 显示全部楼层 |阅读模式
1、引入 __DIR__ magic常量 定位脚本的目录
<?     echo __DIR__."|".dirname(__FILE__); ?>
2、允许从2个值的or/and表达式快速的获取一个非空的值
<?     echo (1 ?: 0) ."|". ("" ?: 0)."|". var_export(array() ?: array(1), true); ?>
3、类添加__callStatic方法,等价于 __call(),但它是为调用静态方法准备的。下面来看示例:
<?     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"); ?>
4、动态的调用静态的方法
<?     class xx{         static function test(){             echo __METHOD__;         }     }     $c = "xx";     $m = "test";     $c::$m(); ?>
5、延迟静态绑定(静态处理从编译时延迟到执行时)
<? 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(); ?>
6、MySQLInd (高速的专门为PHP设计的MySQL调用库接口)
7、INI Magic
8、扩展的 OpenSSL 函数
9、SPL(Standard PHP Library) 优化
10、时间处理进行扩展了和添加
<?     $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"); ?>
11、垃圾回收器(为复杂和长时间运行脚本的执行结束周期释放内存的清理)
<?     gc_enable(); // 允许垃圾回收     var_dump(gc_enabled()); // true          var_dump(gc_collect_cycles()); // 某个元素的清理          gc_disable(); // 禁止垃圾回收 ?>
12、NOWDOC(不对HEREDOC进行转译)
<?     $fubar = "xxx";          $xbar = <<<ONE         this is HEREDOC $fubar     ONE;          $abar = <<<'TWO'         this is NOWDOC $fubar     TWO;     echo $xbar."|".$abar; ?>
13、匿名函数体验
<?     $ofun = create_function('$a, $b', 'return $a*$b;'); //不要忘了分号,传统方法     echo $ofun(2, 5);          $nfun = function ($a, $b){         return $a*$b;     };//不要忘了分号,现代方法          echo $nfun(3, 5); ?>
14、闭包体验
<?     $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(); ?>
15、命名空间
<?     namespace xxx; //第一个namespace需要在所有输出之前     function t(){         return __NAMESPACE__;     }          namespace xxx;          function t(){         return __NAMESPACE__;     }          echo \xx\t()."|";     echo \xxx\t(); ?>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表