Menu
Coddy logo textTech

Costruttore (__construct)

Fa parte della sezione Programmazione orientata agli oggetti del percorso PHP di Coddy. Lezione 7 di 91.

Il metodo __construct è un metodo speciale che viene eseguito automaticamente quando crei un nuovo oggetto. Inizializza le proprietà dell’oggetto.

Ecco un esempio di classe con un costruttore:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

Il metodo __construct accetta parametri e li assegna alle proprietà usando $this.

Crea oggetti usando il costruttore:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

Quando chiami new Dog("Rex", "German Shepherd"), PHP chiama automaticamente __construct e passa gli argomenti.

Accedi alle proprietà impostate dal costruttore:

echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";

Output:

Rex
German Shepherd
Buddy
Golden Retriever

Puoi anche avere un costruttore con valori predefiniti per i parametri:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // age ha come valore predefinito 1

echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";

Output:

Fluffy is 3 years old
Whiskers is 1 years old

Punto chiave: il metodo __construct garantisce che ogni oggetto venga configurato correttamente con i suoi dati iniziali al momento della creazione. Ti evita di dover impostare manualmente le proprietà dopo aver creato l'oggetto.

challenge icon

Sfida

Facile

Ti vengono forniti i file PHP (book.php e driver.php) per implementare un sistema di libri.

Il tuo compito è:

  • Completare la classe Book in book.php con un metodo __construct che inizializza le proprietà $title, $author e $pages
  • In driver.php, importare e creare un oggetto libro per "Harry Potter" di "J.K. Rowling" con 400 pagine

Segui i commenti TODO in ciascun file.

Provalo tu

<?php
require_once 'book.php';

// TODO: Crea un oggetto Book con:
// title: "Harry Potter", author: "J.K. Rowling", pages: 400
$myBook = ?;

echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore PHP online