Php 与&和| |不工作的比较

Php 与&和| |不工作的比较,php,comparison,operators,logical-operators,Php,Comparison,Operators,Logical Operators,第一次比较将检查值的长度是否为14,用户ID是否为1 但是我想检查它是1还是2,我不能让它工作 if ($checkValueLenght === 14 && $UserID[0] === "1" || "2") { code... } 无论用户ID以什么字母或数字开头,它都会在代码中穿行,但如果长度不完全是14,则不会。我做错了什么?你需要这个 if ($checkValueLenght === 14 && ($UserID[0] === "1" || $Us

第一次比较将检查值的长度是否为14,用户ID是否为1

但是我想检查它是1还是2,我不能让它工作

if ($checkValueLenght === 14 && $UserID[0] === "1" || "2") { code... }
无论用户ID以什么字母或数字开头,它都会在代码中穿行,但如果长度不完全是14,则不会。我做错了什么?

你需要这个

if ($checkValueLenght === 14 && ($UserID[0] === "1" || $UserID[0] === "2")) { code... }
或者更好,这个

if ($checkValueLenght === 14 && in_array($UserID[0],["1","2"]) { code... }

假设$UserID[0]的值确实是一个字符串。

请参阅手册。您不能仅使用| |将一个变量与多个值进行比较。你写的基本上是:如果$checkValueLength==14&&$UserID[0]==1 | | 2{code…}现在有意义了吗?另一个选择是phps in_数组函数。这对我不起作用,与我上面代码中的结果相同。这确实起作用了!多谢各位@用户3771408非常好。如果需要,您可以通过单击答案旁边的勾号来接受答案。没有义务这样做,但你和回答者都会获得一些代表分数。
if ($checkValueLenght === 14 && in_array($UserID[0],["1","2"]) { code... }