- POO: Finalidad de la herencia y conceptos básicos
- POO en PHP: Propiedades y métodos estáticos
- POO en PHP: Ámbito de propiedades y métodos
- POO en PHP: Propiedades de una clase
- POO en PHP: Métodos en las clases
- Programación orientada a objetos en PHP: Introducción
- Programación orientada a objetos en PHP: Clases y objetos
Para controlar el alcance o ámbito de propiedades y métodos se emplean 3 keywords. Cada una proporciona un acceso restringido a las propiedades y métodos desde fuera de una clase.
La finalidad es mejorar el encapsulamiento, permitiendo tener una mayor control cuando se accede a un miembro. De esta forma se puede asegurar que no se tenga acceso a una propiedad o método evitando malo mayores ya que en caso de un error, está mucho más focalizado.
Public
Esta propiedad es la menos restrictiva y es la que está puesta por defecto cuando se declara la variable var o cuando una variable es implícitamente declarada la primera vez que se usa. Podrías emplear tanto var como public para declarar una variable como public. Esto se debe a que var se mantiene por compatibilidad con versiones previas de PHP. Los métodos se asumen automáticamente public por defecto.
Usa esta propiedad cuando el código externo tiene que acceder a un miembro y si las clases que se extienden a partir de esta deberían heredarlo.
Protected
Esta propiedad es un poco más restrictiva y hace que las propiedades y métodos sólo puedan ser usadas por las sublclases.
Usar este ámbito es ideal si no quieres que código externo acceda a un miembro y sólo quieres las clases que hereden puedan hacerlo.
Private
Es la más restrictiva de todas, los métodos y propiedades sólo pueden usarse dentro de la misma clase.
Este caso es si quieres que no se pueda acceder desde fuera de la clase ni tampoco que la clase que lo herede pueda acceder a la propiedad o método.
Cómo aplicar el ámbito
Aplicar el ámbito a una propiedad o método es muy sencillo, basta con que la palabra clave vaya precedida.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php class Persona { var $nombre = "Luis"; // Public public $edad = 20; // Public protected $correo; // Protected, heredable private function editar() // Private, sólo se puede usar en esta clase { //Código } } ?> |
Y hasta aquí el ámbito de propiedades y métodos, espero que os resulte útil. A seguir picando 🙂