嘿伙计我似乎无法在这里获得语法,我只是想看看是否存在类型, 我试过了
if($obj->type) /* do something */
if($obj[0]->type) /* do something */
if($obj->type[0]) /* do something */
在此
stdClass::__set_state(
array(
'0' =>
stdClass::__set_state(
array(
'report_number' => '555',
'type' => 'citrus',
'region' => 'Seattle',
'customer_number' => '9757',
'customer' => 'The Name',
'location' => 'West Seattle, WA',
'shipper' => 'Yamato Transport',
'po' => '33215',
'commodity' => 'RARE',
'label' => 'PRODUCE',
)),
))
但似乎无法做到正确,我相信这与它有关 [0]是一个int而不是varchar,但我不知道......
答案 0 :(得分:7)
问题中的输出由var_export
创建,它将对象的数据表示为array
。但是不要误导,它实际上是一个对象。
通过以下语法访问对象属性:
$obj->property
在你的情况下,该属性被命名为0
,PHP很难用普通代码处理,因为它不是你可以立即写的属性名称,如下所示:
$obj->0
相反,您需要通过将其封装到{}
中来告诉PHP解析器名称是什么:
$obj->{0}
然后,您可以进一步遍历以访问type
的{{1}}属性:
0
希望这会有所帮助,这个问题会不时出现,这是一个相关的链接:How do I access this object property?。
PHP手册记录了这一点,但在Variable variables entry
中并不是很明显为了将变量变量与数组一起使用,您必须解决模糊问题。也就是说,如果您编写
$obj->{0}->type
,则解析器需要知道您是否打算将$$a[1]
用作变量,或者您希望$a[1]
作为变量然后$$a
来自该变量的索引。解决这种歧义的语法是:第一种情况为[1]
,第二种情况为${$a[1]}
。
答案 1 :(得分:0)
你试过了吗?
<?php
if (property_exists($obj, 'type')) {
// Do something
}
?>