2011-07-27 6 views
0

可能性の重複:
PHP: How to chain method on a newly created object?これは有効なPHPではないのはなぜですか?

私はこのコードで始まった:

$page = new Page(); 

$page->replace_tags(...); 

$page->output(); 

私は$thisを返すことで、メソッドの連鎖を許可するようにreplace_tagsの署名を変更しました。なぜ私はまだこのように書くことができないのですか?

new Page()->replace_tags(...)->output(); 

またはこの:

(new Page())->replace_tags(...)->output(); 
+0

あなたのインスタンスを値に割り当てる必要がありますそのメソッドを呼び出す前に – Ben

+0

@Ben:なぜ?式として使うことはできませんか? – Eric

+3

上記のリンク先の質問を参照してください。これはPHP構文の制限です。呼び出しを「新規」にチェーンすることはできません。 – Palantir

答えて

0

あなたが第一の基準にオブジェクトを割り当てる必要があります。私はあなたがクラスのインスタンスでチェーンに機能を必要とするかもしれないと思う

$obj = new Page(); 
$obj->replace_tags(...)->output(); 
1

$page = new Page(); 

$page->replace_tags(...)->output(); 
関連する問題