新手PHP。为什么这是一个未定义的索引?

时间:2012-12-19 23:37:58

标签: php drupal

  

可能重复:
  PHP: “Notice: Undefined variable” and “Notice: Undefined index”

我浏览了文档和这个网站,但仍然不确定。我正在使用Drupal 7.

使用以下代码打印变量:

<?php print $info['comments'] ?>

如果我得到的评论为零

Notice: Undefined index as a message.

如果存在,则打印正确的#。

任何帮助将不胜感激。如何设置它如果没有注释它会显示零?

谢谢!

4 个答案:

答案 0 :(得分:5)

无论如何打印整数:

 <?php print @intval($info['comments']) ?>

或不可撤销地压制通知:

 <?php print isset($info['comments']) ? $info['comments'] : 0 ?>

答案 1 :(得分:2)

我不知道drupal,并且不完全了解您的上下文,但如果您尝试访问数组中不存在的索引,则会显示此类通知。

为避免这种情况,您可以执行以下操作:

if(isset($info['comments'])) {
    print $info['comments'];
}

答案 2 :(得分:1)

PHP数组本质上是关联的,因此您可以拥有一个由所有类型的键/值组成的数组:

arry['stringkey'] = 'somestring';
arry[1] = 'some other string';
etc..

如果您尝试在没有进行任何错误检查的情况下引用数组中不存在的索引,就像这样

if(arry[2] == 'some third string')

你会收到'未定义的索引'错误。查看isset()函数以获得解决方案。

答案 3 :(得分:0)

您可以测试数组是否具有该键:

if (array_key_exists('comments', $info)) {
...
}

但我不确定这是不是你真正想做的事。