新機能

PHP 5.3.0 には多くの新機能が含まれています。

  • 名前空間 のサポートが追加されました。
  • 遅延静的束縛 のサポートが追加されました。
  • ジャンプラベル (制限付きgoto) のサポートが追加されました。
  • ネイティブクロージャ (ラムダ/無名関数) のサポートが追加されました。
  • マジックメソッドが二つ追加されています。 __callStatic()__invoke() です。
  • Nowdoc 構文がサポートされました。これは ヒアドキュメント のように動作しますが、シングルクォートで囲まれた文字列として扱われます。
  • ヒアドキュメント 構文は、静的な クラスプロパティ/定数 を初期化できるようになりました。
  • ヒアドキュメント 構文は、ダブルクォートを使って宣言できるようになりました。これは Nowdoc 構文を補完するものです。
  • 定数 はクラスの外でも const キーワードを使って宣言できるようになりました。
  • 三項演算子 の短縮形式として ?: が使えます。
  • HTTPストリームラッパー は、200 から 399 までのステータスコードを成功したものとみなすようになりました。
  • 静的なメソッドに動的にアクセスできるようになりました。
    <?php
    class {
       public static 
    $foo 123;
    }

    $a "C";
    echo 
    $a::$foo;
    ?>

    上の例の出力は以下となります。

    123
    
  • 例外 をネストできるようになりました。
    <?php
    class MyCustomException extends Exception {}

    try {
        throw new 
    MyCustomException("Exceptional"112);
    } catch (
    Exception $e) {
        
    /* 三番目のパラメータとして、$e を
         * RuntimeException に渡しています */
        
    throw new RuntimeException("Rethrowing"911$e);
    }
    ?>
  • 循環参照用のガベージコレクタが追加され、デフォルトで有効になりました。
  • mail() 関数が送信メールのログを記録できるようになりました (注意: この関数を使って送信されたメールのみが対象です)。