新機能
PHP 5.3.0 には多くの新機能が含まれています。
- 名前空間 のサポートが追加されました。
- 遅延静的束縛 のサポートが追加されました。
- ジャンプラベル (制限付きgoto) のサポートが追加されました。
- ネイティブクロージャ (ラムダ/無名関数) のサポートが追加されました。
- マジックメソッドが二つ追加されています。 __callStatic() と __invoke() です。
- Nowdoc 構文がサポートされました。これは ヒアドキュメント のように動作しますが、シングルクォートで囲まれた文字列として扱われます。
- ヒアドキュメント 構文は、静的な クラスプロパティ/定数 を初期化できるようになりました。
- ヒアドキュメント 構文は、ダブルクォートを使って宣言できるようになりました。これは Nowdoc 構文を補完するものです。
-
定数 はクラスの外でも
const
キーワードを使って宣言できるようになりました。 -
三項演算子
の短縮形式として
?:
が使えます。 - HTTPストリームラッパー は、200 から 399 までのステータスコードを成功したものとみなすようになりました。
-
静的なメソッドに動的にアクセスできるようになりました。
<?phpclass C { public static $foo = 123;}$a = "C";echo $a::$foo;?>
上の例の出力は以下となります。
123
-
例外 をネストできるようになりました。
<?phpclass MyCustomException extends Exception {}try { throw new MyCustomException("Exceptional", 112);} catch (Exception $e) { /* 三番目のパラメータとして、$e を * RuntimeException に渡しています */ throw new RuntimeException("Rethrowing", 911, $e);}?>
- 循環参照用のガベージコレクタが追加され、デフォルトで有効になりました。
- mail() 関数が送信メールのログを記録できるようになりました (注意: この関数を使って送信されたメールのみが対象です)。