遊星ゲームズ
FrontPage | RSS


PHPのメソッドチェイン
 日記

new Hoge()->get();

 これはエラー。なんでといわれても困る。そういうものらしい。不便だ。
 それがいやなら、しかたないから、staticメソッドでgetInstance()とかfactory()とかを必ず作っておくとか。

Hoge::getInstance()->get();

 PHP5以降。つーかこれならいいのにnewはダメというのが納得いかないけど。
 ちなみにnew系だと、関数の参照返しのときも

function &getHoge() {
return new hoge();
}

 これがNoticeになったりする。とにかくnewするときは一度変数に入れないとダメらしい。

 あと、

$hoge$_lb'piyo'$_rb->get();

 これはもちろんOK。でも

$hoge->getArray()$_lb'piyo'$_rb;

 これはエラー。
 ところがPHP5ならメソッドチェインできるから、

$hoge->getObject()->piyo;

 これなら問題ナシなのである。
 なんか納得いかないけど、このさい配列も無名オブジェクトにキャストして返すか?

return (object)array('piyo' => 'value');

 とたんに怪しいコードに。
 しかしじっさい、HTMLにPHPを埋めこむときは<?=$hoge?>形式で一行で書けなきゃ汚くなるから、実用的なテクニックになってしまいかねないのがなんとも。


PHPのメソッドチェインを