Heim > Backend-Entwicklung > PHP-Tutorial > 【转】PHP5.3亲测精髓特性整理

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

WBOY
Freigeben: 2016-06-13 10:56:15
Original
871 Leute haben es durchsucht

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

    echo __DIR__."|".dirname(__FILE__);
Nach dem Login kopieren


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

    echo (1 ?: 0) ."|". ("" ?: 0)."|". var_export(array() ?: array(1), true);
Nach dem Login kopieren


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");
Nach dem Login kopieren


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

    class xx{         static function test(){             echo __METHOD__;         }     }     $c = "xx";     $m = "test";     $c::$m();
Nach dem Login kopieren


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();
Nach dem Login kopieren


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");
Nach dem Login kopieren


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

        gc_enable(); // 允许垃圾回收     var_dump(gc_enabled()); // true      var_dump(gc_collect_cycles()); // 某个元素的清理      gc_disable(); // 禁止垃圾回收
Nach dem Login kopieren


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

    $fubar = "xxx";      $xbar = <<<ONE         this is HEREDOC $fubar     ONE;      $abar = <<<'TWO'         this is NOWDOC $fubar     TWO;     echo $xbar."|".$abar;
Nach dem Login kopieren


13、匿名函数体验

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


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();
Nach dem Login kopieren


15、命名空间

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage