PHP if 或语句不工作

标签 php if-statement

我们正在尝试使用下面的代码

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/

相关文章:

C If 语句不起作用

php - 下载自定义尺寸的图像 - 重新链接到页面

php - 如何计算PHP目录中.txt文件的数量?

C# 将变量声明到 if 语句中

string - 将单元格内容与 Excel 中的字符串进行比较

java - JAVA 8 中的 NULL 安全对象检查

c - 如果声明不适用于婚姻状况

javascript - $_POST 在 ajax 表单提交中不起作用?

Mac 上不显示 PHP

php - 我对哪些数据库有权限