¿Cuál es la diferencia entre público, privado y protegido en PHP?

Público, privado y protegido se denominan modificadores de acceso. Al igual que C++, PHP también tiene tres modificadores de acceso, como público, privado y protegido. La visibilidad de una propiedad, un método o una constante se puede definir anteponiendo la declaración con estas palabras clave. 
 

  • Si el miembro de la clase se declaró público, se puede acceder a él desde cualquier lugar.
  • Si los miembros de la clase se declaran como protegidos, solo se puede acceder a ellos dentro de la propia clase y heredando las clases secundarias.
  • Si los miembros de la clase se declararon privados, solo la clase que define al miembro puede acceder a ellos.

Modificador de acceso público: este modificador está abierto para usar tanto dentro como fuera de la clase. 
Ejemplo: 
 

php

<?php
 
// BaseClass
class pub {
    public $tag_line = "A Computer Science Portal for Geeks!";
    function display() {
        echo $this->tag_line."<br/>";
    }
}
 
// SubClass
class child extends pub {
    function show(){
        echo $this->tag_line;
    }
}
 
// Object Declaration
$obj= new child;
 
// A Computer Science Portal for Geeks!
echo $obj->tag_line."<br/>";
 
// A Computer Science Portal for Geeks!
$obj->display();
 
// A Computer Science Portal for Geeks!
$obj->show();
?>

Producción: 
 

A Computer Science Portal for Geeks!
A Computer Science Portal for Geeks!
A Computer Science Portal for Geeks!

Modificador de acceso protegido: este modificador está abierto para su uso dentro de la clase en la que está definido y sus clases principales o heredadas.
Ejemplo: 
 

php

<?php
 
// Base Class
class pro {
    protected $x = 500;
    protected $y = 500;
             
    // Subtraction Function
    function sub()
    {
        echo $sum=$this->x-$this->y . "<br/>";
    }    
}
 
// SubClass - Inherited Class
class child extends pro {
    function mul() //Multiply Function
    {
        echo $sub=$this->x*$this->y;
    }
}
 
$obj= new child;
$obj->sub();
$obj->mul();
?>

Producción: 
 

0
250000

Modificador de acceso privado: este modificador está abierto para usar dentro de la clase que lo define. (no se puede acceder fuera de los medios de clase en la clase heredada).
Ejemplo: 
 

php

<?php
 
// Base Class
class demo {
    private $name="A Computer Science Portal for Geeks!";
     
    private function show()
    {
        echo "This is private method of base class";
    }
}
 
// Sub Class
class child extends demo {
    function display()
    {
        echo $this->name;
    }
}
 
// Object Declaration
$obj= new child;
 
// Uncaught Error: Call to private method demo::show()
$obj->show();
 
//Undefined property: child::$name
$obj->display();
?>

Producción: 
 

It will display error because private class data can not be accessed outside the class

Varios ejemplo:  
Ejemplo: 
 

php

<?php
class BaseClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';
 
    function Display()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}
 
$obj = new BaseClass();
echo $obj->public;
echo $obj->protected; // Cannot access protected property
echo $obj->private; // Cannot access private property
$obj->Display();  //Displays all properties
 
class SubClass extends BaseClass
{
    public $public = 'Public Sub Class';
    protected $protected = 'Protected Sub Class';
 
    function Display()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}
 
$obj2 = new SubClass();
echo $obj2->public;
echo $obj2->protected; // Cannot access protected property
echo $obj2->private;  // Cannot access private property
$obj2->Display(); //Displays all properties
?>

Producción: 
 

It will display error because private class data can not be accessed outside the class

PHP es un lenguaje de secuencias de comandos del lado del servidor diseñado específicamente para el desarrollo web. Puede aprender PHP desde cero siguiendo este tutorial de PHP y ejemplos de PHP .

Publicación traducida automáticamente

Artículo escrito por sarthak_ishu11 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *