PHP 7 系で new や for などの予約語がメソッド名などに使えるようになっているのは知っていたけど、イマイチその対象と範囲が理解できていなかったので手を動かして確認してみた。 Query::new()->for('foo')->as('hoge')->if(42)->and('bar')->or('baz')->list()->echo(); みたいなやつ。 結論としては、マニュアルに書いてあるとおりで、「これらのキーワードを プロパティや定数の名前として使える」(クラスやインタフェースやトレイトや関数の名前には使えない)という理解で間違いなさそう。 だだし、明記されているとおり class はメソッドやプロパティの名前には使えない。 default はクラス名・インタフェース名・トレイト名にだけ使えて、関数の名前には使えないのがおもしろい。 class interface tr