Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 能够在print_r()和#x27;s输出,但不确定如何在代码中访问它_Php_Drupal_Drupal 7 - Fatal编程技术网

Php 能够在print_r()和#x27;s输出,但不确定如何在代码中访问它

Php 能够在print_r()和#x27;s输出,但不确定如何在代码中访问它,php,drupal,drupal-7,Php,Drupal,Drupal 7,我在谷歌上搜索,安装了Devel,为Firebug安装了Drupal,但我找不到它 我找到了我想要的,我知道它在哪里;我只是不知道如何得到它 我将把它放在代码括号中,但Devel告诉我文件名(我想将其放在.tpl.php文件中)如下: 字段\图像(对象)stdClass 处理程序(对象)视图\u处理程序\u字段\u字段 视图(对象)视图 结果(数组,2个元素) 0(对象)stdClass _字段_数据(数组,1个元素) nid(数组,2个元素) 实体(对象)stdClass 字段图像(数组,1个

我在谷歌上搜索,安装了Devel,为Firebug安装了Drupal,但我找不到它

我找到了我想要的,我知道它在哪里;我只是不知道如何得到它

我将把它放在代码括号中,但Devel告诉我文件名(我想将其放在.tpl.php文件中)如下:

字段\图像(对象)stdClass 处理程序(对象)视图\u处理程序\u字段\u字段 视图(对象)视图 结果(数组,2个元素) 0(对象)stdClass _字段_数据(数组,1个元素) nid(数组,2个元素) 实体(对象)stdClass 字段图像(数组,1个元素) und(数组,1个元素) 0(数组,11个元素) 文件名(字符串,23个字符)filename.jpg 那么,如何使用PHP输出FILENAME.jpg呢

<?php print $something->other; ?>

每当您需要从变量中读取值时,都需要知道需要使用哪个表达式才能访问该值

对于一个简单的变量值,这很简单,您只需获取变量名,并通过在其前面加上
$
符号将其作为变量进行访问:

var_dump($variable);
这个

但是,这只适用于简单的数据类型,如
string
integer
。还有复合数据类型,即
数组
对象
。它们可以包含更多的数据类型,无论是简单的还是复合的。您可以在PHP手册中学习如何使用和如何使用。我想你已经知道了一点,所以只要把它链接到这里

当你了解了这一点,你就可以把它结合起来。例如,如果一个对象中有一个数组,其中有一个您想要获取的字符串,则需要将
$
符号和变量名与所需的访问器、属性名和数组键组合起来。然后你得到你的价值。您发布的数据显示,您有一个包含其他一些对象和数组的对象,最后您找到了变量名

一些组合示例:

var_dump($variable->handler->view[0]->_field_data);
这是基于您上面提供的数据
$variable
是您的起点,
->
用于访问需要命名的对象成员(如变量名称):
处理程序
。正如您在调试输出中看到的那样,
处理程序
是一个对象,您需要再次使用
->
来访问它的
视图
成员

现在,视图是不同的,因为它是一个数组。您可以通过使用
[]
并将键放在数组中来访问数组的值。我的示例中的键是一个数字,
0
。由于该数组项的值又是一个对象,因此在下一步中,您需要再次使用
->

您可以继续此游戏,直到达到您感兴趣的元素。您已有的调试输出可帮助您编写返回值的表达式。可能是:

$field_image->handler->view->result[0]->_field_data['nid']['entity']->field_image['und'][0]['filename']
但我无法在我的系统上完全验证这一点


但是,当发现问题时,使用
var\u dump
会很有帮助,因为您可以逐步扩展表达式,直到找到元素为止。如果你犯了错误,你会立即看到。有时放置一个
die()
var_dump
语句之后,因此不要在响应包含许多其他数据之前结束响应,这些数据会对您隐藏信息。devel插件提供了额外的调试例程来转储值。

每当需要从变量中读取值时,都需要知道需要使用哪个表达式来访问该值

对于一个简单的变量值,这很简单,您只需获取变量名,并通过在其前面加上
$
符号将其作为变量进行访问:

var_dump($variable);
这个

但是,这只适用于简单的数据类型,如
string
integer
。还有复合数据类型,即
数组
对象
。它们可以包含更多的数据类型,无论是简单的还是复合的。您可以在PHP手册中学习如何使用和如何使用。我想你已经知道了一点,所以只要把它链接到这里

当你了解了这一点,你就可以把它结合起来。例如,如果一个对象中有一个数组,其中有一个您想要获取的字符串,则需要将
$
符号和变量名与所需的访问器、属性名和数组键组合起来。然后你得到你的价值。您发布的数据显示,您有一个包含其他一些对象和数组的对象,最后您找到了变量名

一些组合示例:

var_dump($variable->handler->view[0]->_field_data);
这是基于您上面提供的数据
$variable
是您的起点,
->
用于访问需要命名的对象成员(如变量名称):
处理程序
。正如您在调试输出中看到的那样,
处理程序
是一个对象,您需要再次使用
->
来访问它的
视图
成员

现在,视图是不同的,因为它是一个数组。您可以通过使用
[]
并将键放在数组中来访问数组的值。我的示例中的键是一个数字,
0
。由于该数组项的值又是一个对象,因此在下一步中,您需要再次使用
->

您可以继续此游戏,直到达到您感兴趣的元素。您已有的调试输出可帮助您编写返回值的表达式。可能是:

$field_image->handler->view->result[0]->_field_data['nid']['entity']->field_image['und'][0]['filename']
但我无法在我的系统上完全验证这一点

但是,当发现问题时,使用
var\u dump
会很有帮助,因为您可以逐步扩展表达式,直到找到元素为止。如果你犯了错误,你会立即看到。有时放置一个
die()$field_image->handler->view->result[0]->_field_data['nid']['entity']->field_image['und'][0]['filename']
krumo ($variable);
<? print_r($something["other"]); ?>
dpm($node); // remember this function is declared in devel module
print_r($data); => Traditional view of printing array.

var_dump($data); => Not so much cleaned view , gives you everything but in very suffocated manner

print "<pre>"; print_r($data); => A cleaned view but will not get   data types information.

dpm($data); => It gives you everything, but you need to have installed devel.