get_class
(PHP 4, PHP 5, PHP 7, PHP 8)
get_class — Ermittelt den Klassennamen eines Objekts
Beschreibung
$object
= ?): string
Ermittelt den Klassennamen für das übergebene object
.
Parameter-Liste
-
object
-
Das gewünschte Objekt. Dieser Parameter kann innerhalb einer Klasse ausgelassen werden.
Hinweis: Die explizite Übergabe von
null
alsobject
ist von PHP 7.2.0 an nicht mehr erlaubt und erzeugt einenE_WARNING
-Hinweis. Seit PHP 8.0.0 wird ein TypeError ausgegeben, wennnull
verwendet wird.
Rückgabewerte
Gibt den Namen der Klasse zurück, von der object
eine Instanz ist.
Wenn object
innerhalb einer Klasse ausgelassen wird,
wird der Name dieser Klasse zurückgegeben.
Ist object
eine Instanz einer Klasse in einem
Namensraum, wird der qualifizierte Name dieser Klasse zurückgegeben.
Fehler/Exceptions
Wenn get_class() mit etwas anderem als einem Objekt
aufgerufen wird, wird ein TypeError erzeugt. Vor
PHP 8.0.0 wurde ein Fehler der Stufe E_WARNING
erzeugt.
Wenn get_class() ohne Parameter von außerhalb einer
Klasse aufgerufen wird, wird ein Error erzeugt. Vor
PHP 8.0.0 wurde ein Fehler der Stufe E_WARNING
erzeugt.
Changelog
Version | Beschreibung |
---|---|
8.0.0 |
Der Aufruf dieser Funktion von außerhalb einer Klasse ohne jegliche
Parameter löst einen Error aus. Zuvor wurde,
wurde ein E_WARNING -Hinweis ausgelöst und die
Funktion gab false zurück.
|
7.2.0 |
Vor dieser Version war der Standardwert für object
null , was denselben Effekt hatte wie das Auslassen dieses Parameters.
Nun wurde null als Standardwert für object
entfernt und ist keine gültige Eingabe mehr.
|
Beispiele
Beispiel #1 get_class()-Beispiel
<?php
class foo {
function name()
{
echo "Mein Name ist " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Der Name ist " , get_class($bar) , "\n";
// internal call
$bar->name();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der Name ist foo Mein Name ist foo
Beispiel #2 Einsatz von get_class() in einer Elternklasse
<?php
abstract class bar {
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}
class foo extends bar {
}
new foo;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
string(3) "foo" string(3) "bar"
Beispiel #3 Verwendung von get_class() mit Klassen in Namensräumen
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
string(11) "Foo\Bar\Baz"
Siehe auch
- get_called_class() - The "Late Static Binding" class name
- get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
- gettype() - Liefert den Datentyp einer Variablen
- get_debug_type() - Gets the type name of a variable in a way that is suitable for debugging
- is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert