我们正在尝试使用下面的代码
if (($_GET['1'] != "1") || ($_GET['1'] != "2")) {
当我们尝试这样做时,无论变量的值是多少,即使输入的数据是假的,它也会评估为真。当我们使用
if (($_GET['1'] == "1") || ($_GET['1'] == "2")) {
并放入数据,使其返回 false 正常工作。我们已经颠倒了 if 语句的方式,这样我们就可以让它工作,但我想知道为什么这不起作用,如果它是我做错了什么或者在 php 中使用 or 和不等于运算符的限制
谢谢
最佳答案
你的第一个测试是这样说的:
If
$_GET['1']
is anything other than"1"
OR$_GET['1']
is anything other than"2"
表达式将始终通过:如果它等于 1
,它将通过 if 语句后半部分的 != '2'
测试。如果它等于 2
,它将在前半部分通过 != '1'
测试,而不会进入后半部分测试。
第二个测试简单地说:
If
$_GET['1']
equals"1"
OR$_GET['1']
equals"2"
then the expression should pass
你可能想要这个表达式,只有当两个参数都不包含正确的值时它才会通过:
if(($_GET['1'] != '1') && ($_GET['1'] != '2'))
关于PHP if 或语句不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1781434/