La programación orientada a objetos (POO) es un paradigma de programación que se basa en el concepto de «objeto» y que permite modelar la realidad mediante la creación de clases y objetos que representan entidades del mundo real.
En PHP, la programación orientada a objetos se implementa mediante la creación de clases que definen los atributos y comportamientos de una entidad. Estas clases pueden contener atributos que representan las propiedades de la entidad y métodos que representan las acciones que pueden realizar la entidad.
Por ejemplo, se puede crear una clase Persona
que contenga atributos como nombre
y edad
y métodos como saludar()
que muestre un saludo con el nombre y la edad de la persona. Luego, se pueden crear objetos de la clase Persona
, cada uno con sus propios valores para los atributos nombre
y edad
, y llamar a sus métodos para realizar acciones específicas.
En resumen, la programación orientada a objetos en PHP permite modelar la realidad mediante la creación de clases que representan entidades del mundo real y la utilización de objetos de estas clases para representar entidades concretas con sus propios atributos y comportamientos. Esto permite una mejor organización y reutilización del código en aplicaciones de PHP.
Ejemplo básico de POO en PHP
A continuación se muestra un trozo de código en PHP que ilustra el uso de la programación orientada a objetos:
<?php
// Clase Persona
class Persona {
public $nombre;
public $edad;
public function __construct($nombre, $edad) {
$this->nombre = $nombre;
$this->edad = $edad;
}
public function saludar() {
echo "Hola, mi nombre es " . $this->nombre . " y tengo " . $this->edad . " años.<br>";
}
}
// Creación de dos personas
$persona1 = new Persona("Juan", 25);
$persona2 = new Persona("Ana", 30);
// Saludo de las dos personas
$persona1->saludar();
$persona2->saludar();
?>
En este código se crea una clase Persona
que representa a una persona y contiene dos atributos: nombre
, que representa el nombre de la persona, y edad
, que representa la edad de la persona. La clase Persona
incluye un método saludar()
que muestra un saludo con el nombre y la edad de la persona.
Luego, se crean dos objetos de la clase Persona
, representando a dos personas diferentes, y se llama al método saludar()
de cada una para mostrar sus saludos por pantalla.
Este ejemplo ilustra cómo la programación orientada a objetos permite crear clases que representan entidades del mundo real y utilizar estas clases para crear objetos con sus propios atributos y comportamientos.
Ejemplo más complejo de POO en PHP
A continuación se muestra un trozo de código en PHP que gestiona un equipo de fútbol:
<?php
// Clase Jugador
class Jugador {
public $nombre;
public $edad;
public $posicion;
public function __construct($nombre, $edad, $posicion) {
$this->nombre = $nombre;
$this->edad = $edad;
$this->posicion = $posicion;
}
}
// Clase Equipo
class Equipo {
public $nombre;
public $jugadores = array();
public function __construct($nombre) {
$this->nombre = $nombre;
}
public function agregarJugador($jugador) {
$this->jugadores[] = $jugador;
}
public function mostrarEquipo() {
echo "Equipo: " . $this->nombre . "<br><br>";
echo "Jugadores:<br>";
foreach ($this->jugadores as $jugador) {
echo $jugador->nombre . " (" . $jugador->edad . " años, " . $jugador->posicion . ")<br>";
}
}
}
// Creación del equipo
$equipo = new Equipo("Elche CF");
// Agregar jugadores al equipo
$equipo->agregarJugador(new Jugador("Edgar Badia", 30, "Portero"));
$equipo->agregarJugador(new Jugador("Gonzalo Verdú", 34, "Defensa"));
$equipo->agregarJugador(new Jugador("Omar Mascarell", 29, "Mediocampista"));
$equipo->agregarJugador(new Jugador("Lucas Boyé", 26, "Delantero"));
// Mostrar equipo
$equipo->mostrarEquipo();
?>
En este código se crean dos clases: Jugador
y Equipo
. La clase Jugador
representa a un jugador de fútbol y contiene tres atributos: nombre
, edad
y posicion
, que representan el nombre del jugador, su edad y su posición en el campo, respectivamente. La clase Equipo
representa a un equipo de fútbol y contiene dos atributos: nombre
, que representa el nombre del equipo, y jugadores
, que es un array que contiene a los jugadores del equipo.
La clase Equipo
incluye un método agregarJugador()
que permite agregar un jugador al equipo y un método mostrarEquipo()
que muestra el nombre del equipo y los jugadores que lo conforman.