gpt4 book ai didi

PHP json_encode 不适用于对象数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:01 25 4
gpt4 key购买 nike

我正在开发 php 应用程序,我在其中查询数据库并将生成的结果发送回 html 客户端。

目前,我正在使用 php 函数 json_encode 获取我在 JSON 中编码的对象数组。

但是在编码之后,我的结果中得到了空数组。

以下是编码为JSON之前的结构

 array(2) {
[0]=>
object(ProductComment)#6 (2) {
["_productId":"ProductComment":private]=>
string(1) "1"
["_commentArray":"ProductComment":private]=>
array(2) {
[0]=>
array(3) {
["comment"]=>
string(9) "comment 1"
["creationDate"]=>
string(19) "2000-02-02 00:00:00"
["userName"]=>
string(8) "Ashutosh"
}
[1]=>
array(3) {
["comment"]=>
string(13) "comment1 text"
["creationDate"]=>
string(19) "2012-07-31 10:20:27"
["userName"]=>
string(8) "Ashutosh"
}
}
}
[1]=>
object(ProductComment)#5 (2) {
["_productId":"ProductComment":private]=>
string(1) "2"
["_commentArray":"ProductComment":private]=>
array(2) {
[0]=>
array(3) {
["comment"]=>
string(22) "comment2 product2 text"
["creationDate"]=>
string(19) "2012-07-31 10:48:06"
["userName"]=>
string(8) "Ashutosh"
}
[1]=>
array(3) {
["comment"]=>
string(22) "comment2 product4 text"
["creationDate"]=>
string(19) "2012-07-31 10:48:14"
["userName"]=>
string(8) "Ashutosh"
}
}
}
}

编码后显示 null 而不是 JSON。我需要序列化它吗?任何建议都将不胜感激。谢谢。

最佳答案

看起来“ProductComment”的所有属性都是私有(private)的,所以当涉及到 JSON 编码时,您会得到:

[{}, {}]

这基本上是一个数组,里面有两个空对象。

您需要做的是告诉 PHP 在序列化(或 json 编码)时可以并且应该保留哪些属性。为此,您需要将 __sleep() 魔法方法添加到您的类中:( http://uk.php.net/__sleep )

关于PHP json_encode 不适用于对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11740221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com