我想检查查询变量是否存在.然后我会基于该查询值做一些事情.如果它存在且是真的,那就做点什么吧.如果它不存在或为假,请执行其他操作,例如显示404页面.
例如,如果网址是 domain.com?konami=true
if (condition) {
//something
} else {
//show404
}
Run Code Online (Sandbox Code Playgroud)
OPs的问题有点不清楚.如果您认为他想检查这konami是一个$_GET参数并且它的值是"true"do:
if (isset($_GET["konami"]) === true && $_GET["konami"] === "true") {
// something
} else {
// show 404
}
Run Code Online (Sandbox Code Playgroud)
当前接受的答案(卡梅伦)的问题在于它缺乏isset检查(这是不可原谅的,客观上是错误的).最高投票答案的问题(Jan Hancic)是缺乏=== "true"支票(这是有争议的,这取决于你如何解释问题).
请注意,这&&是一个懒惰的 - 意味着如果第一部分为假,则永远不会评估第二部分,这会阻止"Undefined index"警告.因此,陈述的顺序很重要.
还要注意的$a === true是不一样的$a === "true".第一个比较布尔值,第二个比较字符串.
如果您进行弱比较$a == true,则需要检查是否存在真相.
许多值都是真实的,比如字符串"true",数字1和字符串"foo".假值的示例是:空字符串"",数字0和null.
"true" == true; // true
"foo" == true; // true
1 == true; // true
"" == true; // false
0 == true; // false
null == true; // false
"true" === true; // false
"true" === false; // false
Run Code Online (Sandbox Code Playgroud)