PHP:未定义索引
我有一个Drupal站点,尽管我认为这只是一个PHP问题,而不是Drupal特有的问题。下面的片段PHP:未定义索引,php,if-statement,get,Php,If Statement,Get,我有一个Drupal站点,尽管我认为这只是一个PHP问题,而不是Drupal特有的问题。下面的片段 if($_GET['orderby'] == 'popular' || !isset($_GET['orderby'])) { $output .= 'Popular'; } 当URL如下所示时工作正常 www.mydomain.com/mypage?orderby=popular 但是如果URL是 www.mydomain.com/mypage 然后我得到一个错误 Undefined in
if($_GET['orderby'] == 'popular' || !isset($_GET['orderby'])) { $output .= 'Popular'; }
当URL如下所示时工作正常
www.mydomain.com/mypage?orderby=popular
但是如果URL是
www.mydomain.com/mypage
然后我得到一个错误
Undefined index: orderby in…
我做错了什么?据我所知,我正在检查“orderby”是否正确存在。如果您的
中存在交换条件:
if(!isset($_GET['orderby']) || $_GET['orderby'] == 'popular' )
您正在检查$\u GET['orderby']
是否具有值'popular'
。但问题是,$\u GET['orderby']
是未定义的(当没有为其赋值时)
因此PHP将其解释为:
if("underfined index of $_GET array" == 'popular' ....
这才是真正的问题。
您必须这样做:(是的,您可以优化代码。但这主要是为了澄清问题所在)
你想干什么?您是否正在检查$\u GET['orderby']
是否流行?或者检查它是否为空?
if (isset($_GET['orderby'])) //Is $_GET['orderby'] defined?
//It's defined. Check the value of it...
if($_GET['orderby'] == 'popular') {
code...
}
}