(PHP 4, PHP 5, PHP 7, PHP 8)
get_class — Retourne le nom de la classe d'un objet
Retourne le nom de la classe dont object
est une instance.
Si object est une instance d'une classe qui existe
dans un espace de noms, le nom qualifié avec l'espace de noms de cette classe est retourné.
Si get_class() est appelée avec autre chose qu'un objet,
une TypeError est levée. Antérieur à PHP 8.0.0,
une alerte de niveau E_WARNING était émise.
Si get_class() est appelée sans argument en dehors d'une
classe, une Error est levée. Antérieur à PHP 8.0.0,
une alerte de niveau E_WARNING était émise.
| Version | Description |
|---|---|
| 8.3.0 |
Appeler get_class() sans argument déclenche désormais un avertissement
E_DEPRECATED ;
précédemment, appeler cette fonction à l'intérieur d'une classe renvoyait le nom de cette classe.
|
| 8.0.0 |
Appeler cette fonction depuis l'extérieur d'une classe
lève désormais une Error.
Auparavant, un E_WARNING était généré
et la fonction renvoyait false.
|
| 7.2.0 |
Antérieur à cette version, la valeur par défaut pour
object était null et avait le même effet que
ne pas passer de valeur. Désormais null n'est plus la valeur par défaut
pour object, et n'est plus une entrée valide.
|
Exemple #1 Exemple avec get_class()
<?php
class foo {
function name()
{
echo "Mon nom est " , get_class($this) , "\n";
}
}
// création d'un objet
$bar = new foo();
// Appel externe
echo "Son nom est " , get_class($bar) , "\n";
// Appel interne
$bar->name();
?>L'exemple ci-dessus va afficher :
Son nom est foo Mon nom est foo
Exemple #2 Utilisation de get_class() dans une superclasse
<?php
abstract class bar {
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}
class foo extends bar {
}
new foo;
?>L'exemple ci-dessus va afficher :
string(3) "foo" string(3) "bar"
Exemple #3 Utilisation de get_class() avec des espaces de noms de classe
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>L'exemple ci-dessus va afficher :
string(11) "Foo\Bar\Baz"