欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

【转】PHP5.3亲测精髓特性整理

程序员文章站 2024-04-05 15:07:54
...
【转】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 "/>"; 
            echo "args:".var_export($args, true); 
        } 
        static function __callStatic($func, $args){ 
            echo "static function name:".$func; 
            echo "/>"; 
            echo "static args:".var_export($args, true); 
        } 
    } 
    $x = new xxx(); 
    $x->testfunc("oo"); 
    echo "/>"; 
    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 = 

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();
【转】PHP5.3亲测精髓特性整理

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频