如果 class 有 `__toString` 方法,我可以将 class 对象嵌入到字符串中吗?

Can I embed class objects into strings if class has `__toString` method?

如果我有一个看起来像这样的 class

class MyClass {
    private $myvar;

    public function __construct($myvar) {
        $this->myvar = $myvar;
    }

    public function getMyVar() {
        return $this->myvar;
    }

    public function __toString() {
        return "from toString: " . $this->myvar;
    }
}

然后我想像这样使用我的 class

$myclass = new MyClass("myvar value");
echo "Embedded class into a string: $myclass";

从上面的代码我期望这个输出

Embedded class into a string: from toString: myvar value

是:

public function __toString() {
    return "from toString: " . $this->myvar;
}

因为 $myvar__toString 函数的范围内 未定义

这里有一个简单的 fiddle https://3v4l.org/YFctl