函式名稱:get_mangled_object_vars()
適用版本:PHP 7.4.0及以上版本
函式描述:get_mangled_object_vars() 函式返回一個關聯陣列,其中包含物件的所有屬性和對應的值,包括私有屬性。與內建的 get_object_vars() 函式不同的是,get_mangled_object_vars() 函式也能獲取到以雙下劃線開頭的私有屬性。
用法:
get_mangled_object_vars ( object $object ) : array
引數:
- $object:必需,要獲取屬性的物件。
返回值:
- 返回一個包含物件屬性及其對應值的關聯陣列。
示例:
class MyClass {
public $publicVar = 'Public Variable';
private $__privateVar = 'Private Variable';
}
$obj = new MyClass();
$vars = get_mangled_object_vars($obj);
var_dump($vars);
輸出:
array(2) {
["publicVar"]=>
string(15) "Public Variable"
["__privateVar"]=>
string(15) "Private Variable"
}
在上面的示例中,我們定義了一個名為 MyClass 的類,其中包含一個公共屬性 $publicVar 和一個私有屬性 $__privateVar。然後,我們建立了一個 MyClass 的物件 $obj,並使用 get_mangled_object_vars() 函式獲取了物件的所有屬性及其對應的值。最後,我們使用 var_dump() 函式列印了獲取到的屬性陣列。
需要注意的是,get_mangled_object_vars() 函式只能獲取到以雙下劃線開頭的私有屬性,這是因為在 PHP 中,私有屬性會被編譯器進行名稱修飾,以防止與其他類的私有屬性發生衝突。