0

我有这个代码:

print_r(array_keys($variables));
if (array_key_exists('form', $variables)) {
 print "YES!";
}
$imgs = $variables['form']['field_images'];

它是我用来在 Drupal 中为表单页面设置主题的代码的一部分。YES 被打印出来,但是,drupal 报告未定义的索引。感谢您的慷慨帮助

4

3 回答 3

1

$variables['form']确实存在,但$variables['form']['field_images]可能不存在。这就是为什么您会收到有关 的通知undefined index

因此,在调用它之前,您应该确保该子项也存在。

于 2012-07-30T07:41:43.930 回答
0

尝试这个:-

PHP抛出通知。您可以添加 isset() 或 !empty() 检查以避免错误,如下所示:

if(isset($variables)) ) && !empty($variables)) ))
{

    if (array_key_exists('form', $variables)) {
     print "YES!";
    }
    $imgs = $variables['form']['field_images'];

}
于 2012-07-30T08:14:36.390 回答
0

作为Ikke的答案的示例实现:

if ( !array_key_exists('form', $variables) ) {
    echo 'missing parameter form';
}
else if ( !array_key_exists('field_images', $variables['form']) ) {
        echo 'missing parameter field_images';
}
else {
    $imgs = $variables['form']['field_images'];     
}
于 2012-07-30T07:43:52.673 回答