2009/07/01

PHP 5.3.0

http://www.php.net/archive/2009.php#id2009-06-30-1

リリースされちゃいました。区切り文字が物議を醸しまくった名前空間やびみょーなクロージャをはじめとして多くの機能が詰め込まれてるわけだけど、個人的には undeprecatedな (一度非推奨にされたが、非推奨ではなくなった)is_a 関数に大笑いしたのと、private や protected に マジックメソッド __call がアクセスできるようになったのが一番面白い変更点である。

特に後者はのべつまくなしに適用すれば OOPの原則いくらでも破れる C++ の friend みたいになっちゃわないですかね? と思ってちょっくら試してみた。

class Test {
public function __call($name, $arguments) {
call_user_func(array($this, $name));
}

private function hoge()
{
echo "called hoge\n";
}
}

$a = new Test();
$a->hoge();

実行結果は以下の通り

$ php/5.3.0/bin/php test.php
called hoge

ああ、やっぱり呼べるんだ。けどやっぱマジックメソッドはおもろいですよね。あと、Ethnaのテストを実行してみたらやっぱり5.3.0の方が速かった。

: PHP 5.2.10
real 0m2.180s
user 0m1.908s
sys 0m0.256s
: PHP 5,3.0
real 0m1.905s
user 0m1.648s
sys 0m0.232s

0 件のコメント: