Recordatorio de modificadores de acceso
Como dijimos en el capítulo anterior, los modificadores de acceso pueden ser:
- public: acceso desde cualquier método de la clase u objeto que lo invoque.
- private: acceso sólo desde los métodos de la clase, los objetos no los pueden invocar.
- protected: acceso sólo desde los métodos de la clase y subclases que la hereden, los objetos no los pueden invocar.
Métodos mágicos
También en el capítulo anterior hablábamos de lo que eran los métodos mágicos, que son el constructor y el destructor.
- Método constructor: es aquel método que se ejecuta automáticamente al inicio de instanciar la clase.
- Método destructor: método que se ejecuta automáticamente al final de instanciar la clase.
Ejm
Veamos la sintaxis del capítulo anterior en un ejercicio práctico.
Ejm
<?php class Persona { // ATRIBUTOS public $nombre; public $apellido; public $edad; public $sexo; private $dni; // ATRIBUTO ESTÁTICO public static $manos = ' 5 dedos en cada mano'; // CONSTANTE const MEJOR_CUALIDAD = ' poder pensar'; // MÉTODOS CONSTRUCTOR Y DESTRUCTOR public function __construct($n, $a, $e, $s) { echo "<p><mark>Soy el constructor de la clase</mark></p>"; $this->nombre = $n; $this->apellido = $a; $this->edad = $e; $this->sexo = ($s) ? 'Macho' : 'Hembra'; } public function __destruct() { echo "<p><mark>Soy el destructor de la clase</mark></p>"; } // MÉTODOS DE LA CLASE public function saludar() { echo '<p>Hola, mi nombre es ' . $this->nombre . '</p>'; } public function comer($comida) { echo '<p>Hoy toca comer' . $this->comida . '</p>'; } public function mas_info() { // LLAMANDO A MÉTODOS $this->saludar(); self::saludar(); Persona::saludar(); // LLAMANDO A ATRIBUTOS CON self Y LA PROPIA CLASE echo '<p>El ser humano tiene dos manos con' . self::$manos . '</p>'; echo '<p>La mejor cualidad de un ser humano es' . Persona::MEJOR_CUALIDAD . '</p>'; } } // HACEMOS UNA INSTANCIA A LA CLASE Persona $francisco = new Persona('Francisco', 'Paredes', 51, true); // IMPRIMIMOS ALGUNOS ATRIBUTOS echo '<p>Mi nombre es ' . $francisco->nombre . '</p>'; echo '<p>Mi apellido es ' . $francisco->apellido . '</p>'; echo '<p>Tengo ' . $francisco->edad . ' años</p>'; // IMPRIMIMOS ALGÚN MÉTODO $francisco->saludar(); $francisco->mas_info(); ?>
Función var_dump()
Existe una función denominada var_dump() que nos permite analizar la estructura de un objeto. Veamos un ejm.
var_dump($francisco);