Simple, Slowly

ブログを引っ越ししました。http://48.jp

PHP5.4.0がリリースされました

PHP5.4.0がリリースされましたね。

PHP 5.4.0 Release Announcement

既存のコードへの影響は少ないようです。


f:id:sho-yamasaki:20120306201248p:image


Backward Incompatible Changes

  • セーフモードがなくなった
  • マジッククォートが削除された
  • 呼び出し時の参照渡しをサポートしなくなった
  • $a が文字列の場合に非数値のオフセット (たとえば $a['foo']) を指定したときに、isset, notEmptyの返り値が変わる


セーフモードとマジッククォートは色々言われていましたが、ついになくなりました。
参照渡しもサポート外になりました。PHPでは参照渡しするなってことですかね。
こんな記事もあります。
高速化Tipsのオカルト(1) 関数への参照渡し


New features
個人的にはこの辺が使えそうです。

  • トレイトのサポートが追加
  • 配列の短縮構文が追加。$a = [1, 2, 3, 4]; や $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; のように使える。
  • クラスのインスタンスを生成するときに、そのメンバーにアクセスできるようになった (例: (new Foo)->bar())。

CakePHPのClassRegister::init('Foo')->bar()のようなものでしょうか。
これが使えると便利です。
arrayの短縮構文もサポートされて、今後はarray()と書くことも少なくなっていきそうですね。


新しい構文については、以下のスライドが参考になります。


CakePHPも動作するようですね。
PHP5.4 ビルトインサーバで CakePHP を試食する


PHP5.4使いたくなってきました。。。