(PHP 7 >= 7.4.0, PHP 8)
get_mangled_object_vars — 返回經過名稱修飾的物件屬性陣列
返回一個 陣列,其元素為 object 的屬性。鍵值是成員變數名稱,但有一些值得注意的例外:私有變數的變數名稱前會加上類別名稱,而受保護的變數名稱前會加上 *。這些前置值的前後都有 NUL 位元組。未初始化的型別化屬性會被靜默地捨棄。
object一個物件實例。
返回一個包含 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)
}