所以我把它写入我的脚本
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
前面,sort
就会显示出来,而不是meal
。如果我把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
就是我想要的
你不是想看看这个键是否存在吗?如果是这样,您可能希望使用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);