📜  php 获取对象键 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:25.946000             🧑  作者: Mango

PHP 获取对象键

在 PHP 中,我们经常需要获取对象的键(也称为属性名)来操作其属性。本文将介绍几种获取对象键的方法。

1. 使用 get_object_vars 函数

get_object_vars 函数可以获取一个对象的所有属性(包括私有属性)。通过遍历这个数组,我们可以获取对象的所有键。

class Person {
    private $name = 'Tom';
    public $age = 18;
}

$person = new Person();
$properties = get_object_vars($person);

foreach ($properties as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}

上面的示例将输出:

name => Tom
age => 18
2. 使用 stdClass 转换

如果我们的对象不是某个类的实例,而是以数组方式创建的,我们可以使用 stdClass 类将其转换为对象。然后,我们可以使用 get_object_vars 来获取其所有键。

$array = [
    'name' => 'Tom',
    'age' => 18
];

$object = (object) $array;
$properties = get_object_vars($object);

foreach ($properties as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}

上面的示例将输出:

name => Tom
age => 18
3. 使用 ReflectionObject

ReflectionObject 类提供了一个更加强大的方法来获取对象的所有属性(包括私有属性)。通过 getProperties 方法获取对象的所有属性,然后遍历这个数组,我们可以获取所有键。

class Person {
    private $name = 'Tom';
    public $age = 18;
}

$person = new Person();
$reflection = new ReflectionObject($person);
$properties = $reflection->getProperties();

foreach ($properties as $property) {
    $property->setAccessible(true);
    echo $property->getName() . ' => ' . $property->getValue($person) . "\n";
}

上面的示例将输出:

name => Tom
age => 18
结论

以上是获取对象键的三种常用方法。无论你使用哪种方法,都可以轻松地获取对象的所有属性,不管是公共的还是私有的。