混淆空,isset,!空,!isset

osh*_*nen 2 php

我有以下不能正常工作,因为$_GET['category']也可以等于0.

if ( empty( $_GET['category'] ) ){
    // do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

如何重写这个if语句来做3个不同的事情

  1. 如果$_GET['category']根本不存在,做一些事情
  2. 做一些事情 $_GET['category'] == 0
  3. 如果$_GET['category'] =="不存在"以外的其他事情做0事.

我已经尝试不同的组合empty(),!empty(),isset(),!isset()但我没有得到结果后,我很.我可能做错了组合......

lon*_*day 6

这不是很难做到的:isset是你需要的方法.

if (!isset($_GET['category'])) {
    // category isn't set
} elseif ($_GET['category'] === '0') {
    // category is set to 0
} else {
    // category is set to something other than 0
}
Run Code Online (Sandbox Code Playgroud)

请注意,我已经为字符串确切的平等相比'0',因为GETPOST变量始终字符串(或偶尔阵列),从来没有数字时PHP第一次接收它们.