微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 为什么stdClass会来,而不是我们的自定义对象名称?

这里我的班级名是User,当我打印我的班级属性时,我正确地得到了我的客观名称.之后,我用json_encode()编码数据.然后我用json_decode()解码.我得到了stdClass客观原因?

<?PHP
class User
{
    public $name;
    public $age;
    public $salary;
}
    $user = new User();
    $user->name = 'Siddhu';
    $user->age = 24;
    $user->salary = 7000.80;

print_r($user);
//Output: User Object ( [name] => Siddhu [age] => 24 [salary] => 7000.8 ) 

print_r(json_encode($user));
//Output: {"name":"Siddhu","age":24,"salary":7000.8}

$d = json_encode($user);


$s = json_decode($d);
print_r($s);
//Output: stdClass Object ( [name] => Siddhu [age] => 24 [salary] => 7000.8 ) 

如果您注意到stdClass即将到来,我该如何更改为用户

解决方法:

没有直接的方法可以在类对象中获取数据,或者您需要使用自定义方法来解码,否则您可以使用serialize()&& unserialize()函数在解码时获取类对象中的数据;

$serialized_user_object = serialize($user);

$deserialized_user_object = unserialize($serialized_user_object);

在json_decode中,如果要将数据作为数组,则可以在第二个参数中传递true.
像这样.

var_dump(json_decode($json, true));

要了解有关json_decode的更多信息,请参阅here.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐