连续多个if语句不起作用?

时间:2014-03-27 21:50:36

标签: php if-statement drupal

所以我把它放到我的脚本中

if (!isset($params['q']) || !$params['q']) {
    $params['q'] = 'trending';
}


if (!isset($params['meal']) || !$params['meal']) {
    $params['meal'] = 0;
}

if (!isset($params['sort']) || !$params['sort']) {
    $params['sort'] = 0;
}

    $params = array_unique($params);

现在发生的奇怪事情是$params['q'] = 'trending'$params['meal'] = 0 但可疑的是,sort将完全退出。如果我将sort放在meal之前,则会显示meal而不是sort。如果我将sort放在另一个命令之后,则所有三个命令都会列出。这里有什么我想念的吗?好像,在php中,我不能连续两个if语句?

    array (size=2)
    'q' => string 'trending' (length=8)
    'meal' => int 0

这是不改变顺序,现在如果我在if语句2和3之间输入命令

    array (size=3)
    'q' => string 'trending' (length=8)
    'meal' => int 0
    'sort' => int 0

这就是我想要的

1 个答案:

答案 0 :(得分:0)

您是否试图查看密钥是否存在?如果是这样,您可能希望使用array_key_exists,如下所示:

if (!array_key_exists('q', $params)) {
    $params['q'] = 'trending';
}

if (!array_key_exists('meal', $params) {
    $params['meal'] = 0;
}

if (!array_key_exists('sort', $params) {
    $params['sort'] = 0;
}

$params = array_unique($params);