【发布时间】:2020-06-28 16:42:19
【问题描述】:
我有一个 PHP 对象数组。这些对象是 json_encoded。然后我使用一个对象中的属性在 html 中显示一个表作为表中的一行。为此,我使用 for 循环一个一个地对对象进行 json_decode 并显示表格。但是在 json_decoding 之后我没有得到原始对象。我无法访问它的变量。
<?php
for ($x = 0; $x <= sizeof($objArray); $x++) {
$obj = $objArray[$x];
$obj = json_decode($obj);
?>
<tr id="<?php echo $x ?>">
<th id="obj-<?php echo $x ?>"><?php echo $obj->getName() ?></td>
<td><?php echo $obj->getSchool() ?></td>
<td>Pending</td>
</tr>
<?php }
?>
我在服务器端返回对象的代码如下
$objs = //array of php objects
$objArray =array();
foreach($objs as $values){
array_push($objArray,json_encode($values));
}
return json_encode($objArray);
【问题讨论】:
-
json_decoded 对象将是纯数据对象,不包含任何 getMethods。
-
纯数据对象是什么意思?我在 for 循环中循环的对象属于我声明的特定对象类型,它实现了这些 get 方法。我不能访问这些方法
-
没有。此时它们是 stdClass 对象。 // 每行的复杂 json_encode 不会改变这一点。
-
谢谢我理解了这个问题。因此,我返回的数组不应转换为 json 以便我正确访问方法。因此,如果我还想在 javascript 中访问这个 PHP 对象数组,是否有可以使用的方法。我一直在寻找一种从 javascript 访问这个 php 对象数组的方法