Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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 检查作为对象一部分的数组是否为空_Php_Drupal_If Statement - Fatal编程技术网

Php 检查作为对象一部分的数组是否为空

Php 检查作为对象一部分的数组是否为空,php,drupal,if-statement,Php,Drupal,If Statement,这是在Drupal中实现的,但应该适用于普通PHP 字段事件地址是在$entity\u fetched下的数组 <?php if ($entity_fetched->field-event-address != "") echo $entity_fetched->field-event-address['und']['0']['value']; ?> 如果我保持打开状态,则会出现以下错误: Parse error: syntax error, unexpected '[

这是在Drupal中实现的,但应该适用于普通PHP

字段事件地址是在
$entity\u fetched
下的数组

<?php if ($entity_fetched->field-event-address != "") echo $entity_fetched->field-event-address['und']['0']['value']; ?>
如果我保持打开状态,则会出现以下错误:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in /opt/staging/contitemp/public_html/sites/all/modules/rules/modules/php.eval.inc(125) : eval()'d code on line 7
我试图创建一个if语句,检查对象下的数组是否为空,如果不是,则回显数组内容


我真的很抓狂——如果数组在对象下,我应该能够检查它是否为空,对吗?

-
符号不能在PHP中的变量名称中使用。正因为如此,您得到了语法错误(或者在PHP试图理解您的意思时得到了未定义的常量)


相反,您可以将名称更改为
$entity\u fetched->fieldEventAddress
(它仍然可读,现在是正确的)。

对于Drupal,您确实应该使用实体元数据包装器

因此,您的代码类似于:

$wrapper = entity_metadata_wrapper('entity_type', $fetched_entity);
$value = $wrapper->field_name->value();
if (!empty($value)) echo $value;
您可以在此处找到有关实体元数据包装器的更多信息:

var_dump($entity_fetched->field event address)给了你什么?啊,Drupal这样做让我很困惑——它有一个使用-字符的令牌系统,而当它切换到PHP变量时,它会将它切换到一个u字符。非常感谢。
$wrapper = entity_metadata_wrapper('entity_type', $fetched_entity);
$value = $wrapper->field_name->value();
if (!empty($value)) echo $value;