PHPでコンストラクタからメソッドチェーンする方法
PHPでは他の言語のようにコンストラクタからメソッドチェーンできない。例えば"new Hoge->doSomething();"というようなことができない(やってみるとパーサエラーになる)。
オブジェクトを生成して何かひとつメソッドを呼び出して終わり、という例の時に
<?php $obj = new Hoge; $obj->doSomething();
とやるのは変数に何か名前をつけるコストやタイプ数などの観点から見てめんどうくさい。
そこで以下のような関数を定義する。
<?php function ref($obj) { return $obj; }
この関数はみたとおり渡された値をそのまま返す関数だが、これを使うことで以下のようにメソッドチェーンできるようになる。
<?php ref(new Hoge)->doSomething();
というバッドノウハウっぽい話。