【发布时间】:2017-04-11 02:51:27
【问题描述】:
我开始按照规定的书学习 PHP OOP,但是它不是 IMO 中最好的书,并且导致相当多的混乱,尤其是关于 PHP 类的部分。
考虑以下内容:
Class User{
function setName($newName)
{
$this->name = $newName;
}
function getName()
{
return $this->name;
}
}
该类没有构造方法:
因此,我的问题:
如果上面的类有一个属性
$name和一个引用$namevar 的函数__construct,是否有必要创建setName()方法?如果是,什么时候适合构建构造方法?什么时候不是?作为一般经验法则,我认为为所有类属性构建构造方法是一种好的做法是否正确?
任何建议/帮助/参考表示赞赏。
【问题讨论】:
-
即使您将
$name传递到构造函数中,您仍然希望这些方法来操作名称值,而不是使用您无法控制的公共属性。 -
是的,您可以创建一个
__construct($name)来设置 $name(或者让__construct()在内部调用setName()来执行此操作)。通常,如果您想设置类的某些初始状态,则需要 __construct() 。您是否需要setName()方法取决于您将来是否需要更改 $name。