我有一个带有单个键及其值的对象。但我不知道访问它的关键。在不枚举对象的情况下获取密钥的最有效方法是什么?
答案 0 :(得分:23)
如果您只想访问值,则根本不需要密钥(实际上是属性名称):
$value = current((array)$object);
如果您真的想要属性名称,请尝试以下方法:
$key = key((array)$object);
答案 1 :(得分:4)
您可以将对象强制转换为如下数组:
$myarray = (array)$myobject;
然后,对于只有一个值的数组,这应该获取该值的键。
$value = key($myarray);
如果你愿意,你可以在一行中同时做这两件事。当然,您也可以通过枚举对象来实现,就像您在问题中提到的那样。
要获取值而不是键,那么:
$value = current($myarray);
答案 2 :(得分:3)
$array = array("foo" => "bar");
$keys = array_keys($array);
echo $keys[0];
// Output: foo