这是我的代码:
$upload = json_decode($upload);
if( $upload->error ){...
这是$ upload:
var_dump($upload);
object(stdClass)#3 (2) {
["error"]=> bool(false)
["status"]=> string(53) "..."
}
print_r($upload);
stdClass Object
(
[error] =>
[status] => ...
)
为什么if($ upload->错误)会发出通知,即使它似乎是一个对象?是错误是布尔值吗?
答案 0 :(得分:1)
我现在必须努力面对自己......
上述代码 - 正如大家所指出的 - 是正确的。
我在这里分享的部分是foreach循环的一部分。设置$ upload(由于某些内部函数工作)的上述函数在第一次迭代时返回false。 (我假设)没有任何东西被转储或打印,因为在这种情况下$ upload是错误的。
当通知被抛出时。 var_dump()/ print_r()的输出来自第二次迭代。
在我的测试用例中,foreach只有两次迭代,那就是当我认为通知和对象都属于一起时......
无论如何,谢谢大家。你的评论告诉我,我不得不在别处寻找错误。
答案 1 :(得分:-2)
示例#2访问无效对象属性
通过将元素名称封装在大括号和撇号中,可以访问包含PHP命名约定下不允许的字符的对象中的元素(例如连字符)。
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>