Il type hinting sugli oggetti in una classe è una funzionalità di PHP che consente di specificare il tipo di un parametro di una funzione o di un metodo di classe, limitandone il valore solo ad oggetti di quel tipo. Questo significa che se si cerca di passare un oggetto di un tipo diverso, PHP genererà un errore.
Sintassi utilizzando typehinting su oggetti
In questo esempio,definiamo il metodo myMethod
nella classe MyClass
, che accetta come parametro un oggetto di tipo MyObject
. Questo significa che il parametro $param
deve essere un’istanza della classe MyObject
o di una sua classe figlia.
class MyClass {
public function myMethod(MyObject $param) {
// codice del metodo
}
}
Esempio utilizzando type hinting su oggetti
<?php
class Utente {
private $nome;
private $eta;
public function __construct($nome, $eta) {
$this->nome = $nome;
$this->eta = $eta;
}
public function getNome() {
return $this->nome;
}
public function getEta() {
return $this->eta;
}
}
class UtenteManager {
public function stampaNomeUtente(Utente $utente) {
echo $utente->getNome();
}
}
$utente1 = new Utente("Donato Pirolo", 33);
$manager = new UtenteManager();
$manager->stampaNomeUtente($utente1); // Output: "Donato Pirolo"
?>
In questo esempio, la classe UtenteManager
definisce un metodo chiamato stampaNomeUtente
, che accetta come parametro un oggetto di tipo Utente
. Questo significa che il metodo può essere chiamato solo con un’istanza della classe Utente
o di una sua classe figlia. Nel codice principale, viene creato un oggetto Utente
e poi passato al metodo stampaNomeUtente
della classe UtenteManager
, il quale stampa il nome della persona. Se si tentasse di passare un oggetto di un tipo diverso da Utente
, PHP genererebbe un errore.