Answers:
如果您阅读了文档,FALSE
则如果没有数据,该函数将返回。isset()
实际上会失败,因为您正在分配FALSE
给变量,因此实际上已将其设置为某些变量。正确的语法为:
$field = field_get_items('node', $node, 'field_post_image');
if ($field) {
//Do something with the field
}
else{
//There are no results
}
您可以使用以下代码段来验证字段是否为空。
$info = field_info_field($field_name);
$function = $info['module'] . '_field_is_empty';
if (function_exists($function)) {
$value = field_get_items('node', $node, $field_name);
$is_empty = $function($value[0], $info);
}
此代码更安全,因为在不同条件下不同字段被认为是空的。例如,请参见file_field_is_empty(),number_field_is_empty()和taxonomy_field_is_empty()之间的区别:taxonomy_field_is_empty()
检查参数的tid属性$item
,同时number_field_is_empty()
检查同一参数的value属性。自定义字段可能需要更复杂的条件进行验证,才能认为该字段为空。
文档中给出的hook_field_is_empty()的描述如下:
定义什么构成字段类型的空项目。