ホームページ  >  記事  >  バックエンド開発  >  【譲渡】PHP5.3パーソナルテストエッセンス機能集

【譲渡】PHP5.3パーソナルテストエッセンス機能集

WBOY
WBOYオリジナル
2016-06-13 13:07:581004ブラウズ

【譲渡】PHP5.3パーソナルテストエッセンス機能まとめ
1. スクリプトのディレクトリを見つけるための __DIR__ マジック定数を導入します

    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. >8. OpenSSL 機能の拡張
9. SPL (標準 PHP ライブラリ) の最適化
10. 時間処理が拡張および追加されました


11. (複雑で長時間実行されるスクリプトの実行終了サイクル中にメモリを解放するためのクリーンアップ)
    
    $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");




12. NOWDOC (HEREDOC は翻訳されません)
     
   gc_enable(); // 允许垃圾回收 
    var_dump(gc_enabled()); // true 
 
    var_dump(gc_collect_cycles()); // 某个元素的清理 
 
    gc_disable(); // 禁止垃圾回收




13. 匿名関数の体験
    $fubar = "xxx"; 
 
    $xbar = <<<ONE 
        this is HEREDOC $fubar 
    ONE; 
 
    $abar = <<<'TWO' 
        this is NOWDOC $fubar 
    TWO; 
    echo $xbar."|".$abar;




14. クロージャの体験
    $ofun = create_function('$a, $b', 'return $a*$b;'); //不要忘了分号,传统方法 
    echo $ofun(2, 5); 
 
    $nfun = function ($a, $b){ 
        return $a*$b; 
    };//不要忘了分号,现代方法 
 
    echo $nfun(3, 5);


15.

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。