instanceof, get_class e ::class - OOP in PHP

instanceof, get_class e ::class - OOP in PHP

In PHP, instanceof, get_class e class:: sono tutte funzioni utilizzate per ottenere informazioni su oggetti e classi.

  • instanceof è una parola chiave utilizzata per verificare se un oggetto è un'istanza di una particolare classe o implementa una particolare interfaccia. Restituisce true se l'oggetto è un'istanza della classe o implementa l'interfaccia, e false altrimenti.
  • get_class è una funzione utilizzata per restituire il nome della classe di un oggetto come stringa.
  • ::class viene utilizzato per ottenere il nome di una classe come stringa.

Sintassi di instanceof

$oggetto instanceof NomeClasse

Sintassi di get_class

get_class($oggetto)

Sintassi di ::class

NomeClasse::nomeMetodo()
NomeClasse::$nomeProprietà

Esempio utilizzando instanceof

class Animale {
}

class Cane extends Animale {
}

$animale = new Animale();
$cane = new Cane();

if ($animale instanceof Animale) {
    echo "l'animale è un'istanza della classe Animale<br>";
}

if ($cane instanceof Animale) {
    echo "il cane è un'istanza della classe Animale<br>";
}
/*Output:
l'animale è un'istanza della classe Animale
il cane è un'istanza della classe Animale
*/

Esempio utilizzando get_class

class Animale {
}

$animale = new Animale();

echo get_class($animale); // Output: Animale

Esempio utilizzando ::class

class Persona {
  private $nome;
  private $cognome;
  
  public function __construct($nome, $cognome) {
    $this->nome = $nome;
    $this->cognome = $cognome;
  }
  
  public function getNomeCompleto() {
    return $this->nome . ' ' . $this->cognome;
  }
}
$nomeClasse = Persona::class;
echo $nomeClasse; // stampa "Persona"

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2023
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram