(PHP 7 >= 7.4.0, PHP 8)
get_mangled_object_vars — Liefert ein Array mit aufbereiteten Objekteigenschaften
Gibt ein Array zurück, dessen Elemente die Eigenschaften von object
sind. Die Namen der Mitgliedsvariablen sind die Schlüssel, wobei ein paar Ausnahmen zu beachten sind: Bei privaten Variablen wird dem Variablennamen der Name der Klasse vorangestellt, bei geschützten Variablen ein *
. Diese vorangestellten Werte haben auf beiden Seiten NUL
-Bytes. Uninitialisierte typisierte Eigenschaften werden stillschweigend verworfen.
object
Die Instanz eines Objekts
Gibt ein Array zurück, das alle Eigenschaften von object
enthält, unabhängig von den Zugriffsrechten.
Beispiel #1 get_mangled_object_vars()-Beispiel
<?php
class A
{
public $public = 1;
protected $protected = 2;
private $private = 3;
}
class B extends A
{
private $private = 4;
}
$object = new B;
$object->dynamic = 5;
$object->{'6'} = 6;
var_dump(get_mangled_object_vars($object));
class AO extends ArrayObject
{
private $private = 1;
}
$arrayObject = new AO(['x' => 'y']);
$arrayObject->dynamic = 2;
var_dump(get_mangled_object_vars($arrayObject));
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(6) { ["Bprivate"]=> int(4) ["public"]=> int(1) ["*protected"]=> int(2) ["Aprivate"]=> int(3) ["dynamic"]=> int(5) [6]=> int(6) } array(2) { ["AOprivate"]=> int(1) ["dynamic"]=> int(2) }