Dino Geek, intenta ayudarte

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


En PHP, los modificadores de acceso “public”, “private” y “protected” se utilizan para controlar la visibilidad de las propiedades y métodos en las clases. Comprender estas diferencias es fundamental para aplicar correctamente los principios de encapsulamiento en la programación orientada a objetos (POO). Vamos a desglosar cada uno y proporcionar ejemplos claros sobre su uso.

1. Público (public): Las propiedades y métodos definidos como ‘public’ son accesibles desde cualquier parte del proyecto. No hay restricciones de acceso, por lo que pueden ser utilizadas tanto dentro de la clase donde se definen como desde fuera de esa clase.

Ejemplo: ```php class MiClase { public $propiedadPublica = ‘Valor público’; public function metodoPublico() { return ‘Método público’; } } $objeto = new MiClase(); echo $objeto->propiedadPublica; // Acceso válido echo $objeto->metodoPublico(); // Acceso válido ```

2. Privado (private): Las propiedades y métodos definidos como ‘private’ solo son accesibles dentro de la clase en la que se definen. No se pueden acceder ni desde subclases (clases que heredan) ni desde objetos externos.

Ejemplo: ```php class MiClase { private $propiedadPrivada = ‘Valor privado’; private function metodoPrivado() { return ‘Método privado’; } public function accederPrivado() { return $this->metodoPrivado(); } } $objeto = new MiClase(); // echo $objeto->propiedadPrivada; // Error: acceso no permitido // echo $objeto->metodoPrivado(); // Error: acceso no permitido echo $objeto->accederPrivado(); // Acceso válido a través de un método público ```

3. Protegido (protected): Las propiedades y métodos definidos como ‘protected’ son accesibles desde la clase donde se definen y desde cualquier subclase que herede de esa clase. Sin embargo, no son accesibles desde objetos externos.

Ejemplo: ```php class ClaseBase { protected $propiedadProtegida = ‘Valor protegido’; protected function metodoProtegido() { return ‘Método protegido’; } } class ClaseDerivada extends ClaseBase { public function accederProtegido() { return $this->metodoProtegido(); } } $objeto = new ClaseDerivada(); // echo $objeto->propiedadProtegida; // Error: acceso no permitido // echo $objeto->metodoProtegido(); // Error: acceso no permitido echo $objeto->accederProtegido(); // Acceso válido desde una subclase ```

Conclusión:
En resumen, el modificador ‘public’ permite el acceso abierto, ‘private’ restringe el acceso exclusivamente a la clase donde se define, y ‘protected’ permite el acceso dentro de la clase y en sus subclases. Estos modificadores son esenciales para la protección de datos y la implementación de una arquitectura de software bien estructurada y mantenible.

Fuentes Utilizadas:
1. Manual oficial de PHP: https://www.php.net/manual/es/language.oop5.visibility.php
2. W3Schools sobre PHP OOP: https://www.w3schools.com/php/php_oop_access_modifiers.asp
3. GeeksforGeeks sobre Modificadores de Acceso en PHP: https://www.geeksforgeeks.org/access-modifiers-in-php/


Genera artículos simplemente para optimizar tu SEO
Genera artículos simplemente para optimizar tu SEO





DinoGeek ofrece artículos sencillos sobre tecnologías complejas

¿Desea ser citado en este artículo? Es muy sencillo, contáctenos en dino@eiki.fr.

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nombre de dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Aviso legal / Condiciones generales de uso