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);
