Manual de PHP: Objetos

Programación Orientada a Objetos en PHP

PHP incorpora programación orientada a objetos, con todas las ventajas que este paradigma ofrece.

Definir una clase

Una clase se puede considerar como una colección de propiedades y de métodos que acceden a esas propiedades.

  • class: para declarar una clase en PHP se usa class.
  • propiedades: las propiedades de la clase se definen anteponiendo var al nombre de la propiedad.
  • métodos: los métodos se definen como funciones normales.
  • $this: para referirnos al objeto o a propiedades dentro de la clase emplearemos $this-> seguido de la propiedad.
  • constructor: las clases que tienen un método constructor llaman a este método cuando se crea un nuevo objeto, para inicializar propiedades. El constructor se define igual que los demás métodos y su nombre será __construct() o bien el mismo nombre que la clase.
<?php
class Perro {
    // propiedades
    var $nombre;
    var $peso = 0; // podemos emplear parametros por defecto
    var $raza;
 
    // constructor
    function __construct($_nombre, $_peso, $_raza) {
        $this->nombre = $_nombre;
        $this->peso   = $_peso;
        $this->raza   = $_raza;
    }
 
    // metodo que incrementa el peso
    function Suma($incremento) {
        $this->peso += $incremento;
    }
 
    // metodo que devuelve una cadena con las propiedades
    function toString() {
        return ("Nombre: ".$this->nombre.", Peso: ".$this->peso.
          ", Raza: ".$this->raza);
    }
}
?>

Crear un objeto

Para crear un objeto lo definimos con new y lo asignamos a una variable.

<?php
// crea un nuevo objeto de la clase Perro
$toby = new Perro();
?>

Si hemos definido un constructor podemos asignar valores a las propiedades del objeto al crearlo:

<?php
// creamos al Labrador Toby con 45 kg de peso
$toby = new Perro("Toby", 45, "Labrador");
?>

Acceder a un objeto

Para utilizar una propiedad o un método de un objeto la sintaxis es:

<?php
// sumamos 5 kg al peso de Toby
$toby->Suma(5);
 
// mostramos las propiedades de Toby utilizando el metodo toString
echo $toby->toString();
 
// mostramos las propiedades de Toby accediendo a sus datos directamente
echo "Nombre: ".$toby->nombre.", Peso: ".$toby->peso.", Raza: ".$toby->raza;
?>

Extender una clase

Una clase puede ser una extensión de otra clase. La clase extendida o derivada tiene todas las variables y funciones de la clase base ("herencia") y lo que se agregue en la definición extendida. Esto también se conoce como una relación "padre-hijo": la clase hija está basada en la clase padre. Para extender una clase usaremos extends.

Veamos un ejemplo. Este código define la clase extendida Carrito_Con_Propietario que tiene todas las variables y funciones de Carrito más una variable adicional ($propietario) y una función adicional (definir_propietario()):

<?php
class Carrito_Con_Propietario extends Carrito {
    var $propietario;
 
    function definir_propietario($nombre) {
        $this->propietario = $nombre;
    }
}
?>

Por ser Carrito_Con_Propietario una clase hija de Carrito, es posible usar las variables y funciones de Carrito sobre los Carrito_Con_Propietario:

<?php
$carrito = new Carrito_Con_Propietario; // crear un carrito con propietario
$carrito->definir_propietario("bob");  // nombre del propietario
echo $carrito->propietario;            // imprimir el propietario
$carrito->agregar_item("10", 1);       // funcionalidad heredada de Carrito
?>

La clase padre debe ser definida antes de ser extendida: antes de definir la clase Carrito_Con_Propietario debemos definir la clase Carrito.

También es posible extender una clase hija y crear otra clase basada en ella. Por ejemplo, podemos definir la clase Carrito_Amarillo_Con_Propietario basada en la clase Carrito_Con_Propietario.

Recursos

Artículos en la categoría "Manual de PHP"

  1. Manual de PHP: Estructuras de control
  2. Manual de PHP: Funciones
  3. Manual de PHP: Objetos
  4. Manual de PHP: Formularios web
  5. Manual de PHP: Imágenes
  6. Manual de PHP: XML
  7. Manual de PHP: MySQL
  8. Manual de PHP: Sesiones
  9. Manual de PHP: Matrices
  10. Manual de PHP: Expresiones regulares
  11. Manual de PHP: Sanear datos de usuario
  12. Manual de PHP: Email
  13. Manual de PHP: Evitar el hotlinking de los buscadores