php中的对象数组出错

时间:2017-04-30 08:46:44

标签: php codeigniter

我初始化了对象数组,并尝试通过循环

从数据库设置值
{{1}}

数据库是https://docs.unity3d.com/ScriptReference/Animator.Play.html

但是当dump $ recentpost它只包含数组所有索引中数据库的最后一个值时我不知道发生了什么 database image

抱歉英语不好,我要提前感谢

1 个答案:

答案 0 :(得分:0)

问题出在$recentpost=array_fill(0,$no,new Post);。用单个对象填充数组。这意味着在您的foreach循环中,您只需多次更改其状态。

示例:

$obj = new stdClass();
$obj->prop = 'foo';
$array = array_fill(0, 2, $obj);

这正是var_dump($array)发生的事情:

array(2) {
  [0]=>
  object(stdClass)#1 (1) {
    ["prop"]=>
    string(3) "foo"
  }
  [1]=>
  object(stdClass)#1 (1) {
    ["prop"]=>
    string(3) "foo"
  }
}

我们正在使用相同的对象。所以:

$array[0]->prop = 'bar';
echo $array[1]->prop; // Outputs: bar

<小时/> 可能的解决方案是在循环中填充数组:

for($i = 0; $i < $no; $i++){
    $recentpost[$i] = new Post; 
}

所以现在它为数组的每个元素填充了不同的对象