Php 如何访问N';对象属性名?
我有一个包含未知数量属性的对象,有没有办法在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;
$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]代码>