zoukankan      html  css  js  c++  java
  • PHP学习(四):PHP5.3版本的新特性

    1、引入 __DIR__ magic常量 定位脚本的目录
    <? 
        
    echo __DIR__."|".dirname(__FILE__); 
    ?>
    2、允许从2个值的or/and表达式快速的获取一个非空的值
    <? 
        
    echo (?: 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($argstrue); 
            } 
            static function 
    __callStatic($func$args){ 
                echo 
    "static function name:".$func
                echo 
    "</br />"
                echo 
    "static args:".var_export($argstrue); 
            } 
        } 
        
    $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 
    extends A
        static function 
    whoami(){ 
            echo 
    __CLASS__
        } 


    class 
    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(25); 
         
        
    $nfun = function ($a$b){ 
            return 
    $a*$b
        };
    //不要忘了分号,现代方法 
         
        
    echo $nfun(35); 
    ?>
    14、闭包体验
    <? 
        $arr 
    = array(123567); 
        
    $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(); 
    ?>
  • 相关阅读:
    go语言关于线程与通道channal
    linux 搭建SVN服务端
    使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)
    清理 Xcode 10 记录
    Windows下修改iTunes备份路径
    Winform窗口自适应
    修改类模板文件
    HashTable
    修改App.config的键和值
    博客园动画效果
  • 原文地址:https://www.cnblogs.com/79039535/p/2258868.html
Copyright © 2011-2022 走看看