我正在涉足PHP的面向对象方面,我一直想知道公共封装。我理解私有和受保护封装的目的,但是当涉及到公共封装时,为什么要声明它?
例如,我有 public $name;
但是,如果我只能设置$this->name = 'whatever'
,那么为什么"public $varname"
存在呢?
因为显式指定类的属性总是更好。是的,您可以在需要时在方法中动态设置它们,但是当您尝试记住它是否应该是$varname
,$var_name
,$varName
或者您是否已经"声明"了该属性时,这会变得更加困难。
它还确保在尝试使用该属性时该属性存在,从而节省对isset
的调用,并使代码更加简洁可靠。