Codeigniter数组到对象对话


Codeigniter array to object conversation

我收到行的错误"尝试获取非对象的属性">

'price' => $product->product_price,
'name' => $product->product_name

用于在同一页面中进行

    function remove($rowid) {
  $this->cart->update(array(
        'rowid' => $rowid,
        'qty' => 0
    ));
}

我可以解决这个问题,通过使用'price' => $product->product_price'price' => $product['product_price'],总线作为我的另一个页面,所以我不想将其转换为数组,我的问题是如何将$this->cart->update(array(转换为一个对象,使这些行

'price' => $product->product_price,
'name' => $product->product_name

适用于对象?

提前谢谢。

$Arr = array(
        'rowid' => $rowid,
        'qty' => 0
    );
$Obj = (object)$Arr;

这是数组到对象的转换。你想要吗?

将结果分配给一个数组。然后尝试将数组用作对象。接下来,返回的结果也是一个数组,您尝试将其用作对象。

将数组转换为对象的智能方法

来自PHP手册:

<?php
  $literalObjectDeclared = (object) array(
     'foo' => (object) array(
          'bar' => 'baz',
          'pax' => 'vax'
      ),
      'moo' => 'ui'
   );
print $literalObjectDeclared->foo->bar; // outputs "baz"!
?> 

小天才破解:

<?php    
// assuming $var is a multidimensional array
$obj = json_decode (json_encode ($var), FALSE);
?>

因此您可以通过将数组转换为对象:

<?php    
$array = array(
    // ...
    );
    $object = (object) $array;
?>

如果你想要手动方式,你可以这样做:

<?php    
$object = object;
    foreach($arr as $key => $value)
    {
    $object->{$key} = $value;
    }
?>

将$product定义为新的标准类:

$product = new stdClass();