PHPTweetこんにちは、久保田です。alpha1がリリースされました。PHP5.3では、名前空間や無名関数の追加など、言語機能に大きな追加が行われました。traitが実装され、オブジェクト指向言語としてのPHPに大きな機能追加が行われました。dereferenceの追加、無名関数内の$thisの扱いの変化、JsonSerializableインターフェイスの追加など筆記すべき様々な機能追加、改善が見られます。alpha1で見えてきた新機能をサンプルコードを交えながら概観します。ファイルを翻訳してみたのが以下です。サポート(そして要求)されるようになった。おかしくなるかもしれないのを避けるために、autoconf2.60以上が望ましい。safeモードとそれに関連する全てのiniオプション。register_globalsとregister_long_arraysのiniオプション。import_request_variables関数。iniディレクティブ。iniオプションとそれに関連する関数。空の配列を返すように変更。preg_match_all関数の三番目のパラメータをオプションに変更。プロパティの追加の際にwarningに鳴ったときにnullかfalseに暗黙的にキャストされるのを変更。<?=記法は今やshort_tags設定に関わらず常に利用できる。デフォルトでのマルチバイトのサポート。使わなければならなかった。今ではこれを無効/有効にするには、php.iniのzend.multibyteディレクティブを通じて行う。ext/mbstringからのコンパイル時の依存性を削除。traitのサポートを追加。配列のデリファレンスのサポートを追加。配列を通じた非直接的なメソッド呼び出しをできるようにした。再帰的なserialize関数の呼び出しでのオブジェクトのリファレンスのサポートを追加。http_response_code関数の追加。HTTPヘッダを送ったりデフォルトのHTTPヘッダが追加された後に優先的かつ即座に呼び出す関数を登録するheader_register_callback関数の追加。DTraceサポートの追加。内部のアウトプットレイヤの改善。unserialize関数のパフォーマンスの改善。unix用のビルドシステムが複数のPHPバイナリSAPIとひとつのSAPIモジュールを同時にビルド出来るようにした。debug_backtrace関数とdebug_print_backtrace関数に返すスタックフレームの量を制限するオプションパラメータを追加。ストリームのメタデータAPIサポートとストリームクラス内のstream_metadata()ハンドラの追加。zend_function.pass_rest_by_referenceをZzend_function.fn_flagsのEND_ACC_PASS_REST_BY_REFERENCEに置き換えた。zend_arg_info.required_num_argsの削除。function)の為だけに必要とされるため。現在では、内部関数のための最初のarg_info(特別な意味を持つ)は、zend_internal_function_info構造体によって表される。