不是几句话好不同类型的变种,是我想要做的是:方法返回根据上下文
返回字符串
$obj->method();
在这种情况下,我想
method()
到返回一个对象$obj->method()->method2();
这可能吗? 如果可能的话,有人可以帮助我吗?
不是几句话好不同类型的变种,是我想要做的是:方法返回根据上下文
返回字符串
$obj->method();
在这种情况下,我想method()
到返回一个对象
$obj->method()->method2();
这可能吗? 如果可能的话,有人可以帮助我吗?
号的method()
方法不能知道它是否将使用作为一个字符串或作为对象。你可以这样做的唯一的事情来有点接近你的预期是将它与一个__toString()
方法返回一个对象:
<?php
class YourObject {
public function method2() {
// ...
}
public function __toString() {
return 'some string';
}
}
?>
,并有$obj->method()
回报这个类的一个实例。您可以使用该字符串(echo $obj->method();
)以及对象($obj->method->method2();
)。
我想这是解决这个问题的一种方法。取决于返回后如何使用它。 –
Thx!它符合我的要求! – Julien
传递一个简单的布尔值给方法来告诉它返回什么。
被调用的方法不知道它在哪个上下文中被调用。所以它不能确定它是否应该返回结果或它自己。 – ToBe
你可以传递一个参数给'method()来告诉它返回什么。 –
请停止尝试将* magic *添加到您的代码中。这总是一个可怕的想法。 –