如果这个问题没有多大意义,我道歉;我把它变成文字有点麻烦。我还在学习很多关于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());
但事实并非如此。有什么建议?这甚至可能吗?
答案 0 :(得分:0)
你不能。您需要明确引用对象变量。
您可以在此https://wiki.php.net/rfc/howto提出建议,以强制更改语法。
答案 1 :(得分:0)
这是不可能的,因为$ this只存在于类中并代表其对象。如果你有类Person,你在里面有$ this,这意味着它是对当前Person对象的引用。但如果你没有任何课程,那就没有任何意义。