嘿家伙我似乎无法在这里得到语法,我只是想看看类型是否存在,我已经尝试过了
if($obj->type) /* do something */
if($obj[0]->type) /* do something */
if($obj->type[0]) /* do something */
Run Code Online (Sandbox Code Playgroud)
就这个
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',
)),
))
Run Code Online (Sandbox Code Playgroud)
但似乎无法做到正确,我相信它与[0]是一个int而不是varchar有关,但我不知道....
创建问题中的输出var_export,表示对象的数据为array.但不要误导,它实际上是一个对象.
通过以下语法访问对象属性:
$obj->property
Run Code Online (Sandbox Code Playgroud)
在您的情况下,该属性被命名0为PHP在简单代码中难以处理,因为它不是您可以立即写入的属性名称,如下所示:
$obj->0
Run Code Online (Sandbox Code Playgroud)
相反,您需要通过将其括起来告诉PHP解析器名称是什么{}:
$obj->{0}
Run Code Online (Sandbox Code Playgroud)
然后,您可以进一步遍历以访问以下type属性0:
$obj->{0}->type
Run Code Online (Sandbox Code Playgroud)
希望这有用,问题不时出现,这是一个相关的链接:更多相关链接:如何访问此对象属性?.
PHP手册记录了这一点,但在变量变量条目上并不是很明显:
为了将变量变量与数组一起使用,您必须解决模糊问题.也就是说,如果你编写,
$$a[1]那么解析器需要知道你$a[1]是否想要$$a用作变量,或者你想要作为变量,然后是该变量的[1]索引.解决这种歧义的语法是:${$a[1]}第一种情况和${$a}[1]第二种情况.