我正在学习PHP对象和构造函数。
我有这个简单的例子:
class ShopProduct {
private $title;
public function __construct($title) {
$this->title = $title;
}
public function getTitle() {
return $this->title;
}
}
我不明白的是为什么我要在构造函数中做这个分配,只是为了在接下来的函数中继续使用$this->title
?
我的意思是,在创建构造函数之后,为什么要这样做呢?
public function getTitle() {
return $this->title;
}
而不是这个?
public function getTitle() {
return $title;
}
谢谢你的澄清。对不起,我的英语很糟糕,可能不准确:)
类属性可以在每个类实例(对象)中具有不同的值,也可以具有相同的值,以便每个实例都可以跟踪它。在您的示例中,每个类的$title将是不同的,因此当您输入
时$this->title
你实际上是在说"为我获取这个特定实例的标题,该方法正在被调用"。
因为这就是语言的工作方式。
如果成员函数的所有变量访问都有一个隐式的$this->
,那么如何在父作用域中引用一个名为$title
的变量?
如何在同一个函数中有一个名为$title
的局部变量和名为$this->title
的成员变量?
突然这就不工作了…
function setTitle($title) {
$this->title = $title;
}