Cómo utilizar las PHP classes en la programación orientada a objetos

Las clases PHP estructuran el código en módulos lógicos independientes, cada uno de los cuales tiene propiedades y métodos específicos. Esto favorece su reutilización y la gestión en proyectos de gran envergadura.

¿Qué son las clases PHP?

Las clases PHP son como plantillas o esquemas que se utilizan para crear objetos. Una clase define las propiedades (variables o atributos) y métodos (funciones) que tendrá un objeto. Las clases son una parte esencial de la programación orientada a objetos y pueden utilizarse junto con otras funciones PHP, por ejemplo. También puedes crear clases para utilizar PHP para recuperar información de una base de datos MySQL.

Consejo

Cuando utilizas Deploy Now de IONOS, te beneficias de una solución de alojamiento de última generación para tus programas. Deploy Now ofrece una fiabilidad excepcional y un amplio abanico de potentes funciones de automatización para dar un soporte óptimo a tus proyectos.

Cómo definir clases PHP

Para definir una clase en PHP, utilizamos la palabra clave clase, seguida del nombre de la clase y de llaves. En medio, escribimos las propiedades y métodos de la clase.

class Name {
    // php class example properties and methods
}
php

Aquí tienes un ejemplo más concreto:

class Animal {
    // Properties
    public $name;
    public $color;
    // Methods
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->name;
    }
}
php

La clase “Animal” tiene las dos propiedades “name” y “color”, así como dos métodos para establecer (set_name) y recuperar (get_name) el nombre.

Consejo

Para saber más sobre la programación en PHP, echa un vistazo al tutorial de PHP de nuestra guía. Hemos comparado las ventajas y desventajas de PHP frente a Python y PHP frente a JavaScript para ti.

API gratuita de IONOS

La nueva API soporta operaciones a través de las cuales puedes recuperar o actualizar los datos de tus dominios, DNS y SSL.

Registros DNS
Administración SSL
Documentación API

¿Cuál es la conexión entre las clases PHP y los objetos?

Los objetos son instancias de una clase. Cuando creas una instancia de una clase, obtienes un objeto específico que puede utilizar las propiedades y métodos definidos en esa clase. Puedes crear objetos a partir de una clase utilizando la palabra clave new.

class Animal {
    // Properties
    public $name;
    public $color;
    // Methods
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->name;
    }
}
$dog = new Animal();
$cat = new Animal();
$dog->set_name('Tom');
$cat->set_name('Mickey');
echo $dog->get_name();
echo "<br>";
echo $cat->get_name();
php

Aquí, “dog” y “cat” son instancias de la clase “Animal”, a las que damos sus propios nombres.

Además, las clases PHP pueden heredarse, lo que significa que puedes derivar una clase existente para definir una nueva clase. La clase derivada hereda las propiedades y métodos de la clase base. Esto permite reutilizar y ampliar funciones. Los objetos de la clase derivada también son instancias de la clase base y pueden utilizar sus métodos.

class Mammal extends Animal {
function breathesAir() {
      echo "inhale";
    }
}
$horse = new Mammal;
$horse->setName("Louis");
php

Con PHP extend, la clase “Mammal” hereda todas las propiedades y métodos de la superclase “Animal”. Podemos añadir una nueva función a “Mammal”, pero también podemos acceder a las funciones heredadas.

Ejemplos de uso de clases PHP

Las clases PHP son muy versátiles. A continuación, te ofrecemos ejemplos prácticos de su uso.

PHP instanceof

En PHP, instanceof es un operador para comprobar si un objeto pertenece a una clase concreta o a una clase derivada de ella.

Aquí tienes un ejemplo sencillo:

class Animal {
    public function speak() {
        echo "sound";
    }
}
class Dog extends Animal {
    public function speak() {
        echo "bark";
    }
}
$animal = new Dog();
if ($animal instanceof Animal) {
    $animal->speak(); // Output: "bark"
}
php

En primer lugar, utilizamos instanceof para comprobar si $animal es una instancia de la clase PHP “Animal” o de una de sus clases derivadas. Como $animal es una instancia de la clase derivada “Dog” (que hereda de Animal), se cumple la condición y se ejecuta el código del bloque If.

El operador instanceof es útil si quieres asegurarte de que puedes acceder a ciertos métodos o propiedades sin errores si el objeto no tiene la clase esperada.

PHP classes y arrays

Las clases pueden almacenarse en arrays PHP para diseñar estructuras de datos complejas.

class Product {
    public $name;
    public $price;
    public function __construct($name, $price) {
        $this->name = $name;
        $this->price = $price;
    }
}
$products = [
    new Product("Laptop", 800),
    new Product("Smartphone", 400),
    new Product("Tablet", 300)
];
foreach ($products as $product) {
    echo "Product: " . $product->name . ", Price: $" . $product->price . "<br>";
}
php

En este ejemplo, definimos la clase “Product” para representar diferentes productos y almacenarlos en la matriz “products”. A continuación, podemos recorrer la matriz con loops PHP como la construcción foreach para obtener los nombres de los productos y sus precios.

PHP class constructor

El constructor es un método especial dentro de una clase PHP que se llama automáticamente cuando se crea un objeto de esta clase. El propósito de un constructor es inicializar los estados iniciales de un objeto o realizar otro trabajo preparatorio necesario para que el objeto funcione correctamente.

class Dog {
    private $name;
    private $color;
    // Constructor
    public function __construct($name, $color) {
        $this->name = $name;
        $this->color = $color;
    }
    public function sayHello() {
        return "Hello, my name is {$this->name} and my color is {$this->color}.";
    }
}
$dog = new Dog("Tom", "brown");
echo $dog->sayHello(); // Output: "Hello, my name is Tom and my color is brown."
php