我正在将我的脚趾浸入PHP的面向对象方面,我一直在想公共封装。我理解私有和受保护的封装的目的,但是当涉及到公共时,为什么说出来呢?
所以,例如,我有
public $name;
但如果我可以设置$this->name = 'whatever'
,那么为什么"public $varname"
存在?
答案 0 :(得分:5)
因为明确指定类的属性总是更好。是的,您可以在需要时在方法中动态设置它们,但是当您尝试记住它是否应该是$varname
,$var_name
,{{1}时,它会变得更加困难或者你是否已经“声明”了这个属性。
当您尝试使用该属性时,它还会确保该属性存在,这可以节省您对$varName
的调用,并使您的代码更简洁,更健壮。