php8.5
Home/ Manual/ classobj / functions/ get_mangled_object_vars

get_mangled_object_vars

PHP function Edit on GitHub ✎

(PHP 7 >= 7.4.0, PHP 8)

Returns an array of mangled object properties

Description

get_mangled_object_vars(object $object): array

Returns an Array whose elements are the object's properties. The keys are the member variable names, with a few notable exceptions: private variables have the class name prepended to the variable name, and protected variables have a * prepended to the variable name. These prepended values have NUL bytes on either side. Uninitialized typed properties are silently discarded.

Parameters

object

An object instance.

Return Values

Returns an Array containing all properties, regardless of visibility, of object.

Examples

get_mangled_object_vars() example

php
<?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));

The above example will output:

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

See Also

Source: reference/classobj/functions/get-mangled-object-vars.xml · from the official PHP manual (php/doc-en)