PHP 打印对象的键?

发布于 2024-11-04 02:31:54 字数 203 浏览 0 评论 0原文

我有一个对象 BIRD,然后有 [0] 到 [10],每个数字都有一个小标题,如“bug”或“甲虫”或“gnat”以及每个数字的值。

我想打印,

BIRD 
    [0]
       bug = > value 

但在任何地方都找不到如何执行此操作 - 有人谈论公共、私人和班级,这就是我失败的地方

I have an object BIRD and then there is [0] through [10] and each number has a subheading like "bug" or "beetle" or "gnat" and a value for each of those.

I want to print

BIRD 
    [0]
       bug = > value 

I can't find out how to do this anywhere - there is talk of PUBLIC and PRIVATE and CLASS and that's where I fall off

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

娇纵 2024-11-11 02:31:54

您可以通过类型转换对象轻松地做到这一点:

$keys = array_keys((array)$BIRD);

You could easily do it by type casting the object:

$keys = array_keys((array)$BIRD);
情绪操控生活 2024-11-11 02:31:54

与 brenjt 的响应类似,它使用 PHP 的 get_object_vars 而不是对对象进行类型转换。

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

Similar to brenjt's response, this uses PHP's get_object_vars instead of type casting the object.

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

如果“对象”实际上是关联数组而不是真正的对象,那么 array_keys() 将为您提供所需的内容,而不会出现警告或错误。

另一方面,如果您的对象是真实对象,那么如果您尝试直接使用 array_keys() ,您将收到警告。

您可以使用 get_object_vars() 从对象中将键值对提取为关联数组,然后使用 array_keys() 从中获取键:

$keysFromObject = array_keys(get_object_vars($anObject));

If the 'object' is actually an associative array rather than a true object then array_keys() will give you what you need without warnings or errors.

On the other hand, if your object is a true object, then you will get a warning if you try use array_keys() directly.

You can extract the key-value pairs from an object as an associative array with get_object_vars(), you can then get the keys from this with array_keys():

$keysFromObject = array_keys(get_object_vars($anObject));
一腔孤↑勇 2024-11-11 02:31:54

看起来 array_keys 可能已经停止在对象上工作,但令人惊讶的是,foreach 构造可以工作,至少在 php stdClass 对象上是这样。

$object = new stdClass();
$object->a = 20;
$object->b = "hello";
$keys = array_keys($object);
// array_keys returns null. PHP Version 7.3.3 windows
foreach($object as $key=>$value)
{
     // but this works
     echo("key:" . $key . " value:" . $value . "\n");
}

Looks like array_keys might have stopped working on objects but, amazingly, the foreach construct works, at least on a php stdClass object.

$object = new stdClass();
$object->a = 20;
$object->b = "hello";
$keys = array_keys($object);
// array_keys returns null. PHP Version 7.3.3 windows
foreach($object as $key=>$value)
{
     // but this works
     echo("key:" . $key . " value:" . $value . "\n");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文