php - 私有(private)变量的优点/缺点?

标签 php class variables private public

我习惯于将几乎所有的类变量设为私有(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/

相关文章:

PHP脚本: How big is too big?

php - 查询3个mysql表以创建HTML表

php - EOD没有结束?

PHP/MYSQL 故障排除 我看不出有什么问题

javascript - 通过动态变量访问 Json 值

php - 如何获得共同好友并在 while 循环中显示结果

C++ 类原型(prototype)无法正常工作?

ios - 面向对象编程的正确概念

java - 抽象类或接口(interface)

c# - 如何在 C# 中通过循环组合变量名?