分配的简单方法:受保护的响应值到php变量?

时间:2018-02-16 07:09:03

标签: php arrays variables request response

这是对请求的响应的var_dump的一部分。我们称之为$ response:

object(NeverBounce\Object\VerificationObject)#4 (1) {
["response":protected]=>
array(9) {
["status"]=>
string(7) "success"
["result"]=>
string(7) "invalid"
...

我知道如何访问$ response的数组值并使用以下命令将它们分配给变量:

$var1 = response->[status];
$var2 = response->[result];

除了一个小问题...:附加到响应的受保护。

在将它们分配给$ var1和$ var2时,如何引用状态和结果?由于数组的受保护状态,上述语法不起作用。 我确实在手册和其他关于受保护,私人,公众的帖子中读到了这一点,但在这方面是新的,这没什么意义。

也许我在幻想,但似乎必须有一个简单的方法来做到这一点。

请指教。所有帮助和评论都表示赞赏。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用PHP中的Reflection

维基百科对Reflection的定义〜

  

计算机程序检查和修改的能力   结构和行为(特别是值,元数据,属性   和运行时程序的功能)。 [Reflection (computer_programming)]

在这种情况下,您可能希望使用反射来检查对象的属性并将其设置为可访问受保护的属性_data

这是一个关于如何使用Reflection with PHP获取private/protected参数的示例:

$reflector = new \ReflectionClass($object);
$classProperty = $reflector->getProperty('_data');
$classProperty->setAccessible(true);
$data = $classProperty->getValue($object);

答案 1 :(得分:0)

您可以将对象类型转换为数组,并像普通数组值一样访问它,就像这样

$array =  (array) $yourObject;
$status = $array['response']['status'];
$result = $array['response']['result'];