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

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(); 
?>

你可能感兴趣的:(c,PHP,mysql,脚本,OO)