繁体   English   中英

如何创建对象PHP?

[英]How create object PHP?

函数result():有一个对象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

您在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'

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

还有另一种将数组转换为对象的方法,为您提供最佳解决方案:

如何在PHP中将数组转换为对象?

使用$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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM