Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问PHP对象结构中的变量_Php_Mongodb - Fatal编程技术网

如何访问PHP对象结构中的变量

如何访问PHP对象结构中的变量,php,mongodb,Php,Mongodb,我想分析这个MongoDB错误消息。我无法访问对象中的变量。我想我忽略了一些琐碎的事情,但我想不出来 var_dumpvar_dump($error) 我尝试访问消息并使用echo将其打印出来 echo$错误->消息 抛出:警告:未定义的属性:MongoDB\Driver\WriteError::$message echo$error[“message”] 抛出:未捕获错误:无法将MongoDB\Driver\WriteError类型的对象用作数组。 MongoDB\Driver\WriteEr

我想分析这个MongoDB错误消息。我无法访问对象中的变量。我想我忽略了一些琐碎的事情,但我想不出来

var_dump
var_dump($error)

我尝试访问消息并使用
echo
将其打印出来

echo$错误->消息

抛出:警告:未定义的属性:MongoDB\Driver\WriteError::$message

echo$error[“message”]


抛出:未捕获错误:无法将MongoDB\Driver\WriteError类型的对象用作数组。 MongoDB\Driver\WriteError有一个方法
[getMessage][1]

我的第一个假设是用var_dump检查我得到的结果,不可能看到这些变量是否受保护/私有(以及它们是否有函数)

我做了更多的研究,将一个对象转换为json和echo,至少显示了哪些变量是公共的(在本例中为无)

echo json_encode($error)

给出:
{}

处理对象时,您的第一反应应该是查找。通常,这些对象的许多属性都不会公开,因此您应该假设存在getter-您只需要找到文档来查看它的名称。谢谢@El_Vanja。事实上,类文档提到了getMessage(),这很有效。有没有办法从var_转储中看出这些变量不是公共的?通常,它应该是可见的(请参阅)。他们可能故意掩盖了这些信息的细节。我发现了如何修改和编辑我的评论。如果你只是想找一些快速的方法来调试东西,这个方法完全有效。如果你想深入研究和/或做一些更实用的东西,你可能想研究反射,或者一个函数,比如
get\u object\u vars
,或者,我建议使用一个转储库(我自己使用Kint),它具有高级功能,能够提供大量关于对象的信息(包括所有属性和可用方法)。基本上,其他人已经设计出了更复杂的解决方案,可以深入研究,正如Chris所建议的。不妨使用它。
object(MongoDB\Driver\WriteError)#11 (4) {
        ["message"]=>
        string(362) "E11000 duplicate key error collection: database.collection index: c_address collation: { locale: "nl", caseLevel: false, caseFirst: "off", strength: 1, numericOrdering: false, alternate: "non-ignorable", maxVariable: "punct", normalization: false, backwards: false, version: "57.1" } dup key: { address: "0x", city: "0x" }"
        ["code"]=>
        int(11000)
        ["index"]=>
        int(0)
        ["info"]=>
        NULL
      }