我有一个变量$var。上面var_dump($var);显示:array(1) { [0]=> object(stdClass)#23 (2) { ["stop_id"]=> string(1) "1" ["flag"]=> string(1) "1" } }我希望元素'flag'从$var. 怎么做?我试过:echo $var[0]["flag"];表明:消息:不能将 stdClass 类型的对象用作数组请帮忙
3 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
var_dump() 显示变量是一个 PHP 对象而不是 PHP 数组,因此您可以使用 @Zharov answer 将值作为对象访问,或者如果您想像这样将其作为 PHP 数组访问,则对其进行类型转换:
$array = (array) $var;
示例(简单对象):
$var = new StdClass;
$object->stop_id = "1";
$var->flag = "1";
var_dump( (array) $var );
输出
array(2) {
'stop_id' => string(1)
'Fflag' => string(1)
}
慕娘9325324
TA贡献1783条经验 获得超4个赞
这个错误的原因是$var
数组中的第一项是对象,而不是数组。所以flag
不是索引,它是一个属性,您需要作为类成员访问它并取决于 属性的可见性:
<?php
class Test {
protected $stop_id = "1";
public $flag = "1";
}
$var = array(
new Test
);
var_dump($var[0]->flag);
var_dump($var[0]->stop_id);
?>
结果:
string(1) "1"
Exception: Cannot access protected property Test::$stop_id
- 3 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消