What is the difference between public, private, and protected?

Adam Halasz picture Adam Halasz · Dec 5, 2010 · Viewed 514.4k times · Source

When and why should I use public, private, and protected functions and variables inside a class? What is the difference between them?

Examples:

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

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

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

Answer

Sarfraz picture Sarfraz · Dec 5, 2010

You use:

  • public scope to make that property/method available from anywhere, other classes and instances of the object.

  • private scope when you want your property/method to be visible in its own class only.

  • protected scope when you want to make your property/method visible in all classes that extend current class including the parent class.

If you don't use any visibility modifier, the property / method will be public.

More: (For comprehensive information)