У меня есть объект с единственным ключом и его значением. Но я не знаю, что ключ получает доступ к нему. Что самый эффективный путь состоит в том, чтобы получить ключ, не перечисляя объект?
Если вы просто хотите получить доступ к значению , вам вообще не нужен ключ (на самом деле имя свойства ):
$value = current((array)$object);
Если вам действительно нужно имя свойства , попробуйте следующее:
$key = key((array)$object);
Вы можете преобразовать объект в массив следующим образом:
$myarray = (array)$myobject;
А затем, для массива, который имеет только одно значение, он должен получить ключ для этого значения.
$value = key($myarray);
Вы можете сделать и то, и другое в одной строке, если хотите. Конечно, вы также можете сделать это, перечислив объект, как вы упомянули в своем вопросе.
Чтобы получить значение, а не ключ, тогда:
$value = current($myarray);
$array = array("foo" => "bar");
$keys = array_keys($array);
echo $keys[0];
// Output: foo