(PHP 7 >= 7.4.0, PHP 8)
get_mangled_object_vars — Возвращает массив искажённых свойств объекта
   Функция возвращает массив (array), элементы которого — свойства объекта.
   Ключами массива будут имена переменных-членов, с рядом примечательных исключений:
   в начало имён закрытых переменных добавляется имя класса;
   в начало имён защищённых переменных — символ *.
   Функция также добавит NUL-байты слева и справа
   от звёздочки и имени класса.
   Неинициализированные типизированные свойства
   автоматически отбрасываются.
  
objectЭкземпляр объекта.
   Функция возвращает массив (array), который содержит свойства
   объекта object.
   Функция добавит в массив каждое свойство класса,
   независимо от модификатора видимости свойства.
  
Пример #1 Пример использования функции get_mangled_object_vars()
<?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));
?>Результат выполнения приведённого примера:
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)
}
