使用||进行比较(==)而不是赋值(=)时的简写
Shorthand when using || for comparison (==) rather than assignment (=)
我见过很多关于在等赋值表达式中使用||的问题
$a = $b || $c
但我还没有遇到这个,所以如果它是重复的,请原谅我。
你能缩写if语句中使用的比较吗,比如:
if ($a == ($b || $c || $d)...
或者有必要把它完整地写成吗
if ( ($a == $b) || ($a == $c) || ($a == $d) )... ?
我在PHP中工作,但这个问题也适用于JavaScript
不能这样缩写。您必须像上一个代码块中那样执行完整的语法。如果您想缩短它,可以将要与$a
进行比较的变量放入一个数组中,并使用in_array()
。这通常是有效的,但并不总是有效的,这取决于实际的价值观。但无论如何,这并不是很好,因为你是在用一块代码换另一块代码,所以你并没有真正缩短代码。
或者,考虑使用switch
而不是if
,特别是如果您需要根据这些条件中的哪一个成立来做一些不同的事情。
你能缩写一下if语句中使用的比较吗,比如
$a == ($b || $c || $d)
没有。括号中的表达式首先求值,即($b || $c || $d)
求值为第一个真值。让我们考虑$b = 0, $c = 'foo', $d = null
,然后($b || $c || $d)
将产生'foo'
,所以您最终将比较$a == $c
。
Related:if语句中多个OR表达式的缩写
(我实际上是针对JavaScript回答的($a
在JS中是一个有效的变量名),但在PHP中是一样的)。
相关文章:
- Javascript变量赋值|
- 无法为打字稿字典赋值
- Javascript-根据赋值顺序,按键合并对象数组
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何通过json对象数组为嵌套对象赋值
- 赋值后的回调函数
- ||(OR)运算符如何在赋值中工作
- 可以使用属性赋值实现多个函数
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- 如何在javascript中为全局变量赋值
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- JavaScript:在嵌套循环中为数组赋值
- 未设置变量的赋值| jQuery的作用是什么
- Javascript赋值运算符的奇怪行为
- JavaScript 中同一行上的多个比较/赋值运算符
- 使用||进行比较(==)而不是赋值(=)时的简写
- JavaScript 赋值与条件检查中的代码效率和速度比较
- 在Javascript中进行比较时如何避免赋值
- Javascript for循环在比较部分赋值
- 使用比较赋值时是否需要括号