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