什么时候以及为什么我应该在类中使用公共、私有和受保护的函数和变量?它们之间的区别是什么?

例子:

// Public
public $variable;
public function doSomething() {
  // ...
}

// Private
private $variable;
private function doSomething() {
  // ...
}

// Protected
protected $variable;
protected function doSomething() {
  // ...
}

当前回答

PHP中的变量有三种类型:

Public:该变量类型的值在所有范围内可用,并在代码执行时调用。 声明为:public $ examschedule;

Private:此类型变量的值仅在它所属的类上可用。 私人classRoomComputers美元;

Protected:该类的值仅且仅在以继承或其子类的形式授予Access时可用。通常使用::授予父类访问权限

保护familyWealth美元;

其他回答

PHP手册中有关于这个问题的很好的读物。

属性或方法的可见性可以通过在声明前加上关键字public、protected或private来定义。声明为public的类成员可以在任何地方访问。声明为protected的成员只能在类本身以及继承类和父类中访问。声明为private的成员只能由定义该成员的类访问。

private -只能从类内部访问

protected -可以从类内部和继承类中访问

public -也可以从类外部的代码访问

这不仅适用于变量,也适用于函数。

你使用:

公共作用域,使该属性/方法可从任何地方、对象的其他类和实例使用。 当您希望您的属性/方法仅在其自己的类中可见时,则为私有作用域。 当您希望使您的属性/方法在扩展当前类(包括父类)的所有类中可见时,使用Protected作用域。

如果你不使用任何可见性修饰符,属性/方法将是公共的。

更多信息:(综合信息)

PHP手册-可见性

所提到的关键字是访问修饰符,帮助我们实现封装(或信息隐藏)。它们告诉编译器哪些其他类应该有权访问所定义的字段或方法。

private -只有当前类可以访问字段或方法。

protected——只有这个类的当前类和子类(有时也包括同包类)可以访问该字段或方法。

public -任何类都可以引用该字段或调用该方法。

它们允许不同级别的封装