- 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
Una de las características en PHP es que las propiedades de una clase no es preciso que estén dentro de estas. Se pueden establecer propiedades a un objeto de una manera similar a los objetos literales de javaScript.
1 2 3 4 5 6 |
$objeto = new Alumno(); $objeto->curso = "Secundaria"; echo $objeto->curso; class Alumno {} |
Aunque parezca increíble se muestra el curso sin ningún problema porque PHP implícitamente declara la variable $objeto->curso por ti. Sin embargo, esto puede llevar a bugs difíciles de encontrar ya que la propiedad es declarada fuera de la clase.
Trata de declarar las propiedades dentro de las clases para evitar posibles sustos. Esta forma de declarar propiedades puedes usarla para probar algo en el código o como último recurso pero procura que no sea algo habitual.
Otra cosa a considerar es cuando asignes un valor por defecto a una propiedad. El valor debe ser una constante no debe ser el resultado de una función o expresión.
1 2 3 4 5 6 7 8 9 |
<?php class Prueba { public $nombre = "Miguel"; // Ok public $edad = 25; // Ok public $hora = hora(); // No - Llama a una función public $puntuacion = $edad * 2; // No - Usa una expresión } ?> |
Declaración de constantes
Se puede declarar constantes dentro de una clase de la misma forma que una global constante en PHP. Normalmente es buena práctica nombrar las constantes con mayúsculas. Ten en cuenta que una constante no puede modificar su valor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php Menu::pedir_hamburguesa(); class Menu { const BURGER = 0; const PIZZA = 1; const KEBAB = 2; static function pedir_hamburguesa() { echo self::BURGER; } } ?> |
Para hacer referencia a la constante se emplea self:: en vez de this. En este caso se llama a una función estática por lo que no es preciso instanciar el objeto. Si te perdiste las funciones estáticas te recomiendo mirar el post anterior de esta serie ;).
Y hasta aquí las propiedades de una clase en PHP, espero que os haya gustado y estéis pillando el truco a POO. A seguir picando 🙂