如何创建对象PHP?

时间:2014-11-07 21:02:23

标签: php

函数result():

中有一个对象
foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

如何从下一个数组中获取相同的对象:

$arr[$key] = array(
     'Reason' => $status,
     'Time'   => $val->time,
      'IdUser' => $val->dot,
       'Date'   => $val->date,
        'IdUser' => $val->IdUser,
          'Photo'  => $val->Photo
);

我尝试了(object)$arr

2 个答案:

答案 0 :(得分:1)

你在http://php.net/manual/es/language.oop5.php

上有一个很好的例子
$obj = (object) array('foo' => 'bar', 'property' => 'value');

echo $obj->foo; // prints 'bar'
echo $obj->property; // prints 'value'

您的关联数组在对象中转换,您现在可以获取其属性。

有一些方法可以将数组转换为对象,为您提供最佳解决方案:

How to convert an array to object in PHP?

答案 1 :(得分:0)

$key是一个字符串,它非常简单,只需转换为对象:

$key = 'test';
$arr[$key] = (object)array(
     'Reason' => 1,
     'Time'   => 100,
      'IdUser' => $val->dot,
       'Date'   => $val->date,
        'IdUser' => $val->IdUser,
          'Photo'  => $val->Photo
);
$row = (object)$arr;

var_dump($row->test);
/*
object(stdClass)#1 (5) {
  ["Reason"]=>
  int(1)
  ["Time"]=>
  int(100)
  ["IdUser"]=>
  NULL
  ["Date"]=>
  NULL
  ["Photo"]=>
  NULL
}
*/
echo $row->test->Time; //100

如果$key是一个数字......你运气不好。例如,在某些php版本中,$row->{'2'}可以工作,但主要是它不会 - 如果你想使用数字索引作为对象属性,你会在某处犯一些设计错误。请参阅此键盘以获取我的示例的来源:http://codepad.org/Y7F2xCnj