每当您需要从变量中读取值时,您需要知道需要制定哪个表达式来访问该值。
对于简单的变量值,这很简单,您只需获取变量名称并通过在其前面加上前缀来将其作为变量访问$
sign:
var_dump($variable);
This 记录在这里.
然而,这仅适用于简单的数据类型,例如string
or integer
。还有复合数据类型,即array
and object
。它们可以包含更多数据类型,无论是简单的还是复合的。您可以在 PHP 手册中了解如何访问数组的值如何您可以从对象访问它们。我认为您已经对此有所了解,因此将其链接到此处。
当你了解了这一点后,你就可以将其结合起来。例如。如果一个对象中有一个数组,并且其中有一个你想要获取的字符串,那么你需要组合$
符号和变量名称以及所需的访问器、属性名称和数组键。然后你就得到了你的价值。您发布的数据显示您有一个对象,其中包含其他一些对象和数组,最后您找到了变量名称。
一些组合示例:
var_dump($variable->handler->view[0]->_field_data);
这是基于您上面提供的数据。$variable
是你开始的地方,->
用于访问需要命名的对象成员(如变量的名称):handler
。正如您在调试输出中看到的那样handler
是一个对象,你需要再次使用->
访问view
它的成员。
Now view
是不同的,因为它是一个数组。您可以使用以下方式访问数组的值[]
并将钥匙放在那里。我的例子中的关键是一个数字,0
。由于该数组条目的值又是一个对象,因此在下一步中您需要使用->
again.
您可以继续这个游戏,直到到达您感兴趣的元素。您已有的调试输出可帮助您编写返回值的表达式。可能是:
$field_image->handler->view->result[0]->_field_data['nid']['entity']->field_image['und'][0]['filename']
但我无法在我的系统上完整验证这一点。
然而,当发现问题时,利用var_dump
因为您可以逐步扩展表达式,直到找到元素。如果你犯了一个错误,你会立即看到。有时,放置一个die();
之后var_dump
声明,以便在响应包含大量其他数据之前不要结束响应,这些数据将向您隐藏信息。 devel 插件提供了额外的调试例程来转储突出的值。