44-Modificadores de acceso




Access Modifiers en PHP

Los **modificadores de acceso** en PHP definen la visibilidad de las propiedades y métodos dentro de una clase. Existen tres niveles de acceso:

  • public: Puede ser accedido desde cualquier lugar.
  • protected: Solo puede ser accedido dentro de la clase o por clases heredadas.
  • private: Solo puede ser accedido dentro de la misma clase.

Ejemplo 1: Diferencia entre public, protected y private

Observemos cómo funcionan los modificadores de acceso en una clase.

<?php
class Person {
    public $name;        // Puede ser accedido desde cualquier parte
    protected $age;      // Solo accesible dentro de la clase y subclases
    private $password;   // Solo accesible dentro de la clase

    function __construct($name, $age, $password) {
        $this->name = $name;
        $this->age = $age;
        $this->password = $password;
    }

    function showInfo() {
        return "Nombre: " . $this->name . " | Edad: " . $this->age;
    }
}

$person = new Person("Juan", 30, "secreto123");
echo $person->name; // ✅ Acceso permitido
// echo $person->age; // ❌ Error: acceso denegado (protected)
// echo $person->password; // ❌ Error: acceso denegado (private)
echo $person->showInfo();
?>

Salida esperada:

Juan
Nombre: Juan | Edad: 30

Ejemplo 2: Acceso a una propiedad protegida desde una subclase

Una propiedad protegida puede ser usada en una clase heredada:

<?php
class Employee extends Person {
    function getAge() {
        return "Edad del empleado: " . $this->age;
    }
}

$employee = new Employee("Pedro", 25, "clave456");
echo $employee->getAge();
// echo $employee->age; // ❌ Error: acceso denegado (protected)
?>

Salida esperada:

Edad del empleado: 25

Ejemplo 3: Métodos privados solo dentro de la clase

Los métodos privados solo pueden ser llamados dentro de la misma clase:

<?php
class BankAccount {
    private $balance = 1000;

    private function getBalance() {
        return $this->balance;
    }

    public function showBalance() {
        return "Saldo disponible: " . $this->getBalance();
    }
}

$account = new BankAccount();
echo $account->showBalance();
// echo $account->getBalance(); // ❌ Error: acceso denegado (private)
?>

Salida esperada:

Saldo disponible: 1000

Beneficios de los Modificadores de Acceso

  • Ayudan a encapsular datos y proteger la información.
  • Garantizan que solo ciertos datos puedan ser modificados desde lugares específicos.
  • Mejoran la seguridad del código al restringir accesos innecesarios.

Publicar un comentario

0 Comentarios