我是对象的新手并且有一些基本的了解,但在从特定类型的节点获取数据方面遇到了困难。
这个:
$test->broadcast_data
返回:
object(threewp_broadcast\BroadcastData)#1599 (5) {
["id"]=>
int(49663)
["blog_id"]=>
int(1)
["post_id"]=>
int(38863)
["dataModified":"threewp_broadcast\broadcast_data":private]=>
bool(true)
["data":"threewp_broadcast\broadcast_data":private]=>
array(2) {
["version"]=>
int(2)
["linked_children"]=>
array(3) {
[2]=>
int(18557)
[3]=>
int(8097)
[4]=>
int(1768)
}
}
}
我知道我可以通过以下方式获取 ID:
$test->broadcast_data->id
但是我如何获取 linked_children
数组并将其分配给变量。 "data":"threewp_broadcast\broadcast_data":private
中的冒号和斜杠让我很反感。
谢谢
最佳答案
属性的名称是data
。您看到的冒号和斜线不是类属性的一部分。
"data":"threewp_broadcast\broadcast_data":private
threewp_broadcast\broadcast_data
表示属性所属的命名空间和类,:private
表示data
属性为private
,因此您不能在没有类方法的情况下访问它。
您可以查看类文件,看看是否有像 getData()
这样的函数可以返回私有(private)属性的值。
例如,类如下:
namespace A;
class B{
private $test;
}
它的转储将给出以下内容:
object(A\B)#1 (1) {
["test":"A\B":private]=>
NULL
}
如您所见,"test":"A\B":private
不是属性的名称。
更新
在类里面看了之后threewp_broadcast\broadcast_data ,有一个名为 getData()
的函数,所以你可以这样做:
$test->broadcast_data->getData()['linked_children'];
或者简单地使用类提供的函数get_linked_children()
:
$test->broadcast_data->get_linked_children();
关于php - 从名称中包含冒号和斜杠的 PHP 对象获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672168/