方法根据上下文返回不同类型的var

时间:2014-01-14 14:56:47

标签: php oop

好于几句话,我想做的是:

  1. 返回字符串

    $obj->method();
    
  2. 在这种情况下,我希望method()返回一个对象

    $obj->method()->method2();
    
  3. 这可能吗? 如果可能的话,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

没有。 method()方法无法知道它是用作字符串还是用作对象。你能做的唯一一件事就是让你有一个__toString()方法返回一个对象:

<?php

class YourObject {
    public function method2() {
        // ...
    }

    public function __toString() {
        return 'some string';
    }
}

?>

并让$obj->method()返回此类的实例。您可以像字符串(echo $obj->method();)和对象($obj->method->method2();)一样使用它。

答案 1 :(得分:0)

将一个简单的布尔值传递给方法,告诉它返回什么。