Home > Backend Development > PHP Tutorial > 【转】PHP5.3亲测精髓特性整理

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

WBOY
Release: 2016-06-13 10:56:15
Original
853 people have browsed it

【转】PHP5.3亲测精华特性整理
1、引入 __DIR__ magic常量 定位脚本的目录

    echo __DIR__."|".dirname(__FILE__);
Copy after login


2、允许从2个值的or/and表达式快速的获取一个非空的值

    echo (1 ?: 0) ."|". ("" ?: 0)."|". var_export(array() ?: array(1), true);
Copy after login


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");
Copy after login


4、动态的调用静态的方法

    class xx{         static function test(){             echo __METHOD__;         }     }     $c = "xx";     $m = "test";     $c::$m();
Copy after login


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();
Copy after login


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");
Copy after login


11、垃圾回收器(为复杂和长时间运行脚本的执行结束周期释放内存的清理)

        gc_enable(); // 允许垃圾回收     var_dump(gc_enabled()); // true      var_dump(gc_collect_cycles()); // 某个元素的清理      gc_disable(); // 禁止垃圾回收
Copy after login


12、NOWDOC(不对HEREDOC进行转译)

    $fubar = "xxx";      $xbar = <<<ONE         this is HEREDOC $fubar     ONE;      $abar = <<<'TWO'         this is NOWDOC $fubar     TWO;     echo $xbar."|".$abar;
Copy after login


13、匿名函数体验

    $ofun = create_function('$a, $b', 'return $a*$b;'); //不要忘了分号,传统方法     echo $ofun(2, 5);      $nfun = function ($a, $b){         return $a*$b;     };//不要忘了分号,现代方法      echo $nfun(3, 5);
Copy after login


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();
Copy after login


15、命名空间

    namespace xxx; //第一个namespace需要在所有输出之前     function t(){         return __NAMESPACE__;     }      namespace xxx;      function t(){         return __NAMESPACE__;     }      echo \xx\t()."|";     echo \xxx\t();
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template