如何在不使用对象变量名的情况下使用对象的方法?

时间:2016-07-14 00:47:23

标签: php oop

如果这个问题没有多大意义,我道歉;我把它变成文字有点麻烦。我还在学习很多关于PHP的知识,而且我还没有完全掌握词汇。

我有一个类,它有一个接受不同类对象的方法,因为它是唯一的参数:

class myClass {
    protected $name;

    public function getName() {
        return $this->name;
    }

    public function myMethod($string) {
        // Do something
    }
}

我希望能够做到这样的事情:

$myObject = new myClass();
$myObject->myMethod($myObject->getName());

不使用传递给myMethod()的对象方法的变量名。在我的脑海中,这将是这样的:

$myObject->myMethod($this->getName());

但事实并非如此。有什么建议?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

你不能。您需要明确引用对象变量。

您可以在此https://wiki.php.net/rfc/howto提出建议,以强制更改语法。

答案 1 :(得分:0)

这是不可能的,因为$ this只存在于类中并代表其对象。如果你有类Person,你在里面有$ this,这意味着它是对当前Person对象的引用。但如果你没有任何课程,那就没有任何意义。