Php 如何访问N';对象属性名?

Php 如何访问N';对象属性名?,php,arrays,object,type-conversion,Php,Arrays,Object,Type Conversion,我有一个包含未知数量属性的对象,有没有办法在PHP中获取该对象的第N个属性名 我希望它与下面的代码类似,只是这只适用于数组,而不适用于对象: $key = array_keys($obj)[$i]; 假设以下输入: $obj = stdClass Object ( [ID] => 1 [name] => Mary Jane [count] => 420 ) $i = 1;

我有一个包含未知数量属性的对象,有没有办法在PHP中获取该对象的第N个属性名

我希望它与下面的代码类似,只是这只适用于数组,而不适用于对象:

$key = array_keys($obj)[$i];
假设以下输入:

$obj = stdClass Object
        (
            [ID] => 1
            [name] => Mary Jane
            [count] => 420
        )
$i = 1;
我预计产出为:

ID

你可以用
get\u object\u vars()
首先将对象强制转换为数组:

$key = array_keys((array)$obj)[$i];

刚刚用foreach试用过:

foreach ($obj as $attr)
{
   var_dump($attr);
}
它可以工作,但需要一个计数器根据迭代次数递减,然后中断


编辑:sry,get_object_vars更好。

$obj不是一个数组,那么为什么您希望数组函数可以这样工作呢?对象不是数组,也没有键,它们有属性是的,我知道这段代码不起作用,我在问是否有一个将对象等价于数组的实例
$obj=(array)$obj$key=array\u search($i,(array)$obj);谢谢你的意见,但我尝试了两种建议的方法,铸造对象似乎是解决我特定问题的更实际的方法。使用这个函数意味着我还需要嵌套array_keys函数,比如:
array_keys(get_object_vars($a))[$I]