(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) }