我们正在尝试使用下面的代码
if (($_GET['1'] != "1") || ($_GET['1'] != "2")) {
Run Code Online (Sandbox Code Playgroud)
当我们尝试这个时,无论变量具有什么值,它都会被评估为真,即使输入的数据是假的.当我们使用
if (($_GET['1'] == "1") || ($_GET['1'] == "2")) {
Run Code Online (Sandbox Code Playgroud)
并输入将使其返回false的数据,它正常工作.我们已经颠倒了if语句的方式,所以我们可以使这个工作,但我想知道为什么这不起作用,如果它是我做错了或在php中与or和不等运算符的限制
谢谢
Dou*_*ner 11
你的第一个测试就是这样说:
如果
$_GET['1']比其他任何东西"1"或$_GET['1']比其他任何"2"
表达式将始终通过:如果它等于1它将!= '2'在if语句的后半部分通过测试.如果它等于2它将通过!= '1'上半部分的测试,并且永远不会进入测试的后半部分.
第二个测试简单地说:
如果
$_GET['1']等于"1"OR$_GET['1']等于"2"那么表达式应该通过
您可能想要这个表达式,只有当两个参数都没有包含正确的值时才会传递:
if(($_GET['1'] != '1') && ($_GET['1'] != '2'))
Run Code Online (Sandbox Code Playgroud)