get_mangled_object_vars

(PHP 7 >= 7.4.0, PHP 8)

get_mangled_object_varsマングリングされたオブジェクトのプロパティを配列で返す

説明

get_mangled_object_vars(object $object): array

object のプロパティを要素とする配列を返します。 配列のキーはメンバ変数の名前ですが、 注意すべき例外がいくつかあります。 private な変数については、キーの前にクラス名が付きます。 そして、protected な変数については、 キーの前に * が付きます。 これらの付加される値は、両側に NUL バイトが付いています。 未初期化の 型付きプロパティ は黙って捨てられます。

パラメータ

object

オブジェクトのインスタンス。

戻り値

アクセス権に関わらず、 object の全てのプロパティを含む配列を返します。

例1 get_mangled_object_vars() の例

<?php

class A
{
    public 
$public 1;

    protected 
$protected 2;

    private 
$private 3;
}

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

参考

関連キーワード:  配列, オブジェクト, int, マングリング, vars, mangled, キー, クラス, array, 変数