<div class="section">
メソッドチェーンといって、オブジェクトを連ねて処理させる方法がある。
class Hoge { function Hoge() { } public function eh($str) { echo htmlspecialchars($str); } } new Hoge()->eh("この引数が表示される");
※Hoge::eh("この引数が表示される");と書くことも出来るが、今回はメソッドチェーンのお話。
動かすと、「PHP Parse error: parse error, unexpected T_OBJECT_OPERATOR」というエラーが返ってくる。
PHPでは動かない。
これを動かすには、以下のような関数を用意する必要がある。
function expr($f) { return $f; }
この関数を以下のように使うことで、メソッドチェーンを実現することが出来る。
class Hoge { function Hoge() { } public function eh($str) { echo htmlspecialchars($str); } } function expr($f) { return $f; } expr(new Hoge())->eh("この引数が表示される");
ソースコードがスッキリするので、個人的には好きな書き方です。
でも、Hoge::eh("この引数が表示される");の方が僕は好きです。
参考 http://d.hatena.ne.jp/amachang/20090803/1249292858