PHP 打印对象的键?
我有一个对象 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以通过类型转换对象轻松地做到这一点:
You could easily do it by type casting the object:
与 brenjt 的响应类似,它使用 PHP 的 get_object_vars 而不是对对象进行类型转换。
Similar to brenjt's response, this uses PHP's
get_object_vars
instead of type casting the object.如果“对象”实际上是关联数组而不是真正的对象,那么 array_keys() 将为您提供所需的内容,而不会出现警告或错误。
另一方面,如果您的对象是真实对象,那么如果您尝试直接使用 array_keys() ,您将收到警告。
您可以使用
get_object_vars()
从对象中将键值对提取为关联数组,然后使用array_keys()
从中获取键: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 witharray_keys()
:看起来 array_keys 可能已经停止在对象上工作,但令人惊讶的是,foreach 构造可以工作,至少在 php stdClass 对象上是这样。
Looks like array_keys might have stopped working on objects but, amazingly, the foreach construct works, at least on a php stdClass object.