PHP - 注意:未定义索引 [重复]

PHP - Notice: Undefined Index [duplicate]

提问人:andyosuna 提问时间:8/13/2014 更新时间:8/13/2014 访问量:1034

问:

我知道如何做 isset 的事情,我也知道通知本身没什么大不了的,但它仍然困扰着我的强迫症。

这就是我处理上述行中变量的页面的设置方式:

//this part gets the page name from the url or sets the name to "Home"
if (isset($_GET['page'])):
    $pageCurrent = ucfirst($_GET['page']);
else:
    $pageCurrent = 'Home';
endif;

//this is a multiple array to handle the error pages
$errorPages = array(
    '404' => array(
        'errorTitle' => 'title',
        'error' => 'content'    
    ),
    '403' => array(
        'errorTitle' => 'title',
        'error' => 'content'        
    )
);

//this two lines are the bastards giving me a hard time
$errorTitle = $errorPages[$pageCurrent]['errorTitle'];
$error = $errorPages[$pageCurrent]['error'];

您可以在 GitHub 上查看整个过程

谢谢

php 维数组 多语言 undefined-index

评论

0赞 kimbarcelona 8/13/2014
这是一个有效的 php 代码吗?
2赞 Tieson T. 8/13/2014
@kimbarcelona是的。php.net/manual/en/control-structures.alternative-syntax.php
0赞 kimbarcelona 8/13/2014
明白了。好吧,我不习惯使用这种语法。
5赞 olive_tree 8/13/2014
是只有我还是......如果您的 pageCurrent 设置为 'Home',并且您执行 errorPages['Home'] ,则 errorPages 数组中不存在该值...所以。。。
0赞 Kevin 8/13/2014
当然,它应该表明,如果,那么它的未定义,只需添加另一个检查isset on$pageCurrent == 'Home'$errorPages[$pageCurrent]

答:

1赞 Scopey 8/13/2014 #1

在您的例子中,出现错误消息是因为您引用了数组中不存在的键/值。$errorPages

访问数组中的值时,必须确保正在使用的键存在。在您的情况下,您可以使用:isset

if(isset($errorPages[$pageCurrent])) {

}

或者,您可以使用(文档array_key_exists)

isset如果键存在但设置为 ,则返回 false。 仅当键从未设置或已在数组中时才返回 false。nullarray_key_existsunset