- 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
Al declarar una clase es posible crearle métodos para desarrollar ciertas acciones. Además de métodos propios PHP ofrece métodos especiales.
Uno de ellos es el constructor, que al pasarle una serie de argumentos el objeto tenga propiedades definidas. El otro se llama cuando el objeto es «destruído» y ejecute un código, como podría ser borrar otros objetos que estén relacionados con la clase, esto serían destructores.
Constructores
Como mencioné, al crear un nuevo objeto se pueden pasar una lista de argumentos. Estos argumentos se pasan a un método especial dentro de la clase llamado constructor que inicializa varias propiedades.
Anteriormente en PHP se creaba una constrcutor como en JAVA, creando un método con el mismo nombre de la clase con sus parámetros.
1 2 3 4 5 6 7 8 9 |
<?php class Usuario { function Usuario($param1, $param2) { // Declaraciones } } ?> |
Desde PHP5 se puede emplear el método __construct(). Para indicar que es un método especial va precedido de 2 barras bajas.
Al usar un constructor u otro método será preciso acceder a las propiedades del objeto. En PHP se emplea $this para referirnos a la clase. Por ejemplo usar en esta clase $this sería como usuario. Voy a emplear el método construct() asignando las propiedades del objeto.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php class Usuario { public $nombre, $correo; function __construct($param1, $param2) { $this->nombre = $param1; $this->correo = $param2; } } ?> |
Destructores
En PHP5 se pueden crear métodos destructores. Se emplean como última referencia a un objeto o cuando el script llega a su fin.
1 2 3 4 5 6 7 8 9 |
<?php class Usuario { function __destruct() { // Código } } ?> |
Métodos
Para crear métodos en una clase es como crear una función pero, nunca usando las 2 barras bajas ya que eso está reservado para funciones especiales como construct y destruct.
Al crear un método una clase, se pueden acceder a sus propiedades con el objeto $this. Por ejemplo, devolver el nombre.
1 2 3 4 5 6 7 8 9 10 |
<?php class Usuario { public $nombre, $corre; function get_nombre() { return $this->nombre; } } ?> |
La función get_nombre() accede a la propiedad nombre de la clase Usuario. De esta manera cuando se crea un objeto con dicha clase, se podrá ver su nombre empleando el método get_nombre(). Por ejemplo
1 2 3 |
$usu = new Usuario; $usu->nombre = "Pepe"; echo $usu->get_nombre(); |
Métodos estáticos
Los métodos estáticos son funciones que no precisan un objeto instanciado para ser llamadas. Se llamaría directamente a la clase. Para que una función sea estática hay que usar static en la declaración de la función.
A diferencia de un método normal, un método estático no puede acceder a las propiedades de la clase/objeto.
1 2 3 4 5 6 7 8 9 |
<?php class Usuario { static function mensaje() { echo "Introduza su nombre de usuario o correo"; } } ?> |
Para llamar a la función
1 |
Usuario::mensaje(); |
Y hasta aquí los métodos en las clases de PHP. A pasar buen finde 🙂