Introducción a POO en PHP
Ahora nos ocuparemos del estudio de POO en PHP. Veamos un ejemplo de la vida real, y luego lo trasladaremos a PHP.
Como ejemplo, tomemos un automóvil. Este tiene ruedas, color, tipo de carrocería, cilindrada del motor y así sucesivamente. Además, el conductor puede darle comandos: moverse, detenerse, girar a la derecha, a la izquierda, etc.
Se puede decir que existe un clase de automóviles que posee propiedades comunes (todos tienen ruedas y a todos se les pueden dar comandos).
Un automóvil concreto, estacionado en la calle - es un representante de esta clase, o, en otras palabras, un objeto de esta clase. Todos los objetos de esta clase tienen propiedades: número de ruedas, color, tipo de carrocería y métodos: moverse, detenerse, girar a la derecha, a la izquierda.
En otras palabras, la clase en sí es un plano, según el cual se fabrican los automóviles en la fábrica. El objeto es el automóvil en sí, fabricado según esos planos.
En PHP, una clase se crea usando la palabra clave
class, seguida del nombre
de esta clase. Hagamos la clase Car:
<?php
class Car
{
// aquí el código, es decir, el plano PHP del automóvil
}
?>
Indiquemos ahora en nuestro plano que cualquier automóvil, creado según este plano, tendrá una propiedad para el color y una propiedad para la cantidad de combustible.
Para ello, dentro de la clase escribimos la propiedad
$color y la propiedad $fuel:
<?php
class Car
{
// Definamos las propiedades (en esencia variables de la clase):
public $color; // color del automóvil
public $fuel; // cantidad de combustible
}
?>
Ahora creemos los métodos de nuestra clase.
En PHP, los métodos, al igual que las funciones ordinarias, se declaran
usando la palabra clave function,
antes de la cual se escribe la palabra clave
public.
Como se mencionó anteriormente, nuestro automóvil puede moverse, puede girar, puede detenerse. Creamos los métodos correspondientes en nuestra clase:
<?php
class Car
{
public $color; // color del automóvil
public $fuel; // cantidad de combustible
// Comando moverse:
public function go()
{
// algún código PHP
}
// Comando girar:
public function turn()
{
// algún código PHP
}
// Comando detenerse:
public function stop()
{
// algún código PHP
}
}
?>
Hemos hecho el plano de nuestro automóvil. Ahora necesitamos ir a la fábrica y hacer un objeto de esta clase (es decir, un automóvil concreto).
En PHP esto se hace usando la palabra clave
new, después de la cual se escribe el nombre de la clase:
<?php
new Car;
?>
Sin embargo, si simplemente creamos un objeto de la clase - esto no conducirá a nada (es lo mismo que, por ejemplo, declarar un array y no guardarlo en ningún sitio). Necesitamos una variable para almacenar este objeto.
Dejemos que esta variable se llame $myCar
- guardemos en ella el objeto que hemos creado:
<?php
$myCar = new Car;
?>
Después de crear el automóvil se puede acceder
a sus propiedades. El acceso a ellas se realiza
mediante la flecha ->. Establezcamos
las propiedades de nuestro objeto:
<?php
$myCar = new Car; // ordenamos a la fábrica que haga un automóvil
// Establecemos las propiedades del objeto:
$myCar->color = 'red'; // pintamos de color rojo
$myCar->fuel = 50; // cargamos combustible
?>
Listo, nuestro automóvil está creado, pintado y repostado. Ahora podemos darle órdenes a través de los métodos de este automóvil.
El acceso a los métodos también se realiza mediante la flecha, pero, a diferencia de la propiedad, después del nombre del método se deben escribir paréntesis. Demos órdenes a nuestro objeto:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>