クラスとselfとstringが指定できることは知っていたけどオブジェクトが指定できるのは知らなかった。
- クラス
- self, parent, static(クラスのコンテキスト内のみ)
- クラス名(string)
- オブジェクト (PHP5.3以降)
<?php
class A {
}
$classname = 'A';
$a = new A; //Aオブジェクト1
$b = new $classname; //Aオブジェクト2
$c = new $a; //Aオブジェクト3
オブジェクトをnewすると、単に「オブジェクトのクラス名」をnewしたのと同じ挙動になります。
なお、オブジェクトに__toString()が実装されていても、単に無視されます。