get_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_classRetourne le nom de la classe d'un objet

Description

get_class(object $object = ?): string

Retourne le nom de la classe de l'objet object.

Liste de paramètres

object

L'objet testé.

Note: Passer explicitement null dans object n'est plus autorisé à partir de PHP 7.2.0 et émet une E_WARNING. À partir de PHP 8.0.0, une TypeError est émise quand null est utilisé.

Valeurs de retour

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é.

Erreurs / Exceptions

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.

Historique

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.

Exemples

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"

Voir aussi