我还在OOP学习。我有一个问题,即使用在Getter和Setter中使用的私有关键字。根据我对私有关键字的理解,它无法从课外访问。这是一本从书中复制的片段!
<?php
//GetSet.php
class GetSet
{
private $dataWarehouse;
function __construct()
{
$this->setter(200);
$got= $this->getter();
echo $got;
}
private function getter()
{
return $this->dataWarehouse;
}
private function setter($setValue)
{
$this->dataWarehouse=$setValue;
}
}
$worker=new GetSet();
?>
但是,我在Getter和Setter中使用 public 关键字看到了很多。因此,该书说,如果我们在Getter和Setter中使用公共关键字,它可以打破封装概念&#34; 。
我的问题是&#34;我应该在Getter和Setter中使用公开或私有关键字吗?或者这是基于业务要求吗?&#34;。
答案 0 :(得分:2)
如果你有足够的getter和setter方法用于该变量,我会将其设为私有更安全。
This programmer's question也为使用私有变量提出了一些其他实际论据。
可以从课外访问公共成员,出于实际考虑,这意味着“可能在任何地方”。如果公共领域出现问题,罪魁祸首可以在任何地方,因此为了追踪错误,你可能需要查看相当多的代码。
相比之下,私有成员只能从同一个类中访问,因此如果出现问题,通常只有一个源文件可供查看。如果您的项目中有一百万行代码,但您的类保持较小,这可以将您的错误跟踪工作量减少1000倍。