Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:未定义索引_Php_If Statement_Get - Fatal编程技术网

PHP:未定义索引

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

我有一个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 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...            
    }
}