PHP5.4+でできると仮定すると、(new Object)->method()
なぜこれができないのか疑問に思っていました:
<?php
class Item {
public $property = 'test';
}
class Container
{
public function getItem()
{
return new Item();
}
}
echo get_class(($object = (new Container())->getItem())); // returns Item
// this comes up with error
echo ($object = (new Container())->getItem())->property;
コードの最後の行がトリガーされる理由PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)
編集:
私の質問とはまったく関係のない回答が表示されているため、質問を明確にする必要があるようです。構文エラーを取り除く方法を尋ねているのではありません。私の質問は、これが Item のインスタンスであると教えてくれるのに($object = (new Container())->getItem())
、なぜ式のプロパティにアクセスできないのですか?get_class()