Classi PHP: costrutti della programmazione orientata agli oggetti

Le classi PHP organizzano il codice in moduli logici indipendenti, ciascuno con caratteristiche e metodi specifici. Questo favorisce la gestione e il riutilizzo del codice in progetti complessi.

Cosa sono le classi PHP?

Le classi PHP sono come modelli o schemi usati per creare oggetti. In una classe vengono definite le caratteristiche (variabili o attributi) e i metodi (funzioni) da assegnare a un determinato oggetto. Le classi sono fondamentali nella programmazione orientata agli oggetti e possono essere combinate con altre funzioni PHP. È possibile creare classi anche per estrarre dati da un database MySQL.

Consiglio

Deploy Now di IONOS è l’hosting di ultima generazione per le tue applicazioni. Non solo ti garantisce un’affidabilità eccezionale, ma anche una serie di potenti funzionalità di automazione progettate per ottimizzare i tuoi progetti.

Come definire le classi PHP

Per definire una classe in PHP si inizia con la parola chiave class, seguita dal nome desiderato per la classe, racchiudendo il testo tra parentesi graffe. All’interno delle parentesi graffe possiamo definire le proprietà e i metodi della classe.

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

Di seguito un esempio concreto:

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

La classe “Animal” possiede due attributi, “name” e “color” insieme a due metodi, (set_name) per impostare il nome e (get_name) per recuperarlo.

Consiglio

Se desideri avvicinarti ai concetti della programmazione PHP, puoi consultare il tutorial PHP per principianti nella nostra Digital Guide. Inoltre, abbiamo messo a confronto i linguaggi PHP e Python e PHP e JavaScript, analizzandone i rispettivi vantaggi e svantaggi.

API IONOS per sviluppatori
Gestisci i tuoi prodotti di hosting tramite la nostra potente API
  • Gestione record DNS
  • Amministrazione SSL
  • Documentazione API

Qual è la relazione fra classi e oggetti in PHP?

Gli oggetti sono istanze di una classe. Istanziando una classe si crea un oggetto che può accedere alle proprietà e ai metodi definiti nella classe stessa. I nuovi oggetti di una classe vengono istanziati utilizzando la parola chiave 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

In questo esempio “dog” e “cat” sono istanze della classe “Animal”, alle quali assegniamo un nome.

In aggiunta, le classi PHP possono essere ereditate, il che significa che è possibile creare una nuova classe derivandola da una già esistente. La classe figlio eredita tutte le proprietà e i metodi della classe padre, il che permette di riutilizzare e ampliare le varie funzioni. Allo stesso tempo gli oggetti della classe figlio sono istanze della classe base e possono accedere ai suoi metodi.

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

Utilizzando la parola chiave extends, la classe figlio “Mammals” eredita tutte le proprietà e i metodi dalla classe padre “Animal”. È possibile aggiungere nuove funzioni a “Mammal” ma allo stesso tempo accedere alle funzioni ereditate.

Esempi di utilizzo di classi PHP

Le classi PHP possono essere utilizzate in molti modi. Di seguito illustriamo alcuni esempi pratici.

PHP instanceof

In PHP, instanceof è un operatore che permette di verificare se un oggetto appartiene a una classe specifica o a una classe derivata da essa.

Di seguito un esempio di facile comprensione:

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

Anzitutto, si utilizza l’operatore instanceof per verificare se la variabile $animal è un’istanza della classe PHP “Animal” o di una delle sue classi figlie. Poiché $animal è un’istanza della classe derivata “Dog” (ereditata da Animal), la condizione risulta vera e viene eseguito il codice all’interno del blocco “if”.

L’utilizzo dell’operatore instanceof è particolarmente utile quando si desidera assicurarsi di poter accedere a metodi o proprietà specifici senza generare errori nel caso in cui l’oggetto non presenti la classe desiderata.

Classi e array PHP

Le classi possono essere salvate in array PHP. Questo consente di progettare strutture di dati complesse.

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

In questo esempio creiamo la classe “Product” per rappresentare diversi prodotti e successivamente li archiviamo nell’array “products”. Quindi possiamo utilizzare un meccanismo di foreach per sottoporre l’array a cicli PHP per visualizzare i nomi e i prezzi dei prodotti.

Costruttore di classi PHP

Il costruttore è un metodo PHP all’interno di una classe che viene richiamato automaticamente quando si crea un oggetto di quella classe. Il compito principale di un costruttore è inizializzare un oggetto o eseguire altre operazioni preparatorie necessarie per garantire che l’oggetto funzioni correttamente.

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
IONOS Object Storage
Archiviazione sicura e a prezzi vantaggiosi

Archivia i tuoi dati in tutta sicurezza sui nostri server, e proteggili dagli accessi non autorizzati.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top