我有一个扩展 SplFileObject 并实现__toString
方法的类,但我似乎得到了不一致的行为,具体取决于方法的调用方式。有时调用父方法,有时调用子方法。谁能解释为什么会这样?
class Something extends \SplFileObject {
public function __toString() {
return 'calling __toString';
}
}
$something = new Something('test.php');
echo $something; // 'calling __toString'
echo (string) $something; // 'test.php'
echo $something->__toString(); // 'calling __toString'