我习惯于将几乎所有的类变量设为私有(private),并创建“包装器”函数来获取/设置它们:
class Something{
private $var;
function getVar(){
$return $this->var;
}
}
$smth = new Something();
echo $smth->getVar();
我看到很多人都这样做,所以我最终也这样做了:)
与以下相比,以这种方式使用它们是否有任何优势:
class Something{
public $var;
}
$smth = new Something();
echp $smth->var;
?
我知道 private 意味着你不能在类外直接访问它们,但对我来说,变量是否可以从任何地方访问似乎并不重要......
那么私有(private)变量还有其他隐藏的优势吗?
最佳答案
它叫做 encapsulation这是一件非常好的事情。封装将您的类与其他类的内部结构隔离开来,它们只能通过您的方法获得您允许的访问权限。它还保护它们免受您可能对类内部所做的更改。在没有封装的情况下,如果您更改变量的名称或用法,该更改会传播到使用该变量的所有其他类。如果您强制它们通过一个方法,您至少有机会处理方法中的更改并保护其他类免受更改。
关于php - 私有(private)变量的优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243006/