Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用| |进行比较(=)而不是赋值(=)时的速记_Javascript_Php - Fatal编程技术网

Javascript 使用| |进行比较(=)而不是赋值(=)时的速记

Javascript 使用| |进行比较(=)而不是赋值(=)时的速记,javascript,php,Javascript,Php,我已经看到很多关于在作业表达式中使用| |的问题,例如 $a = $b || $c 但我没见过这个,所以如果是重复的请原谅 您能否缩写if语句中使用的比较,例如: if ($a == ($b || $c || $d)... 还是有必要把它完整地写下来 if ( ($a == $b) || ($a == $c) || ($a == $d) )... ? 我用的是PHP,但这个问题也适用于JavaScript,你不能这样缩写。您必须执行上一个代码块中的完整语法。如果要缩短它,可以将与$a进行比

我已经看到很多关于在作业表达式中使用| |的问题,例如

$a = $b || $c
但我没见过这个,所以如果是重复的请原谅

您能否缩写if语句中使用的比较,例如:

if ($a == ($b || $c || $d)...
还是有必要把它完整地写下来

if ( ($a == $b) || ($a == $c) || ($a == $d) )... ?

我用的是PHP,但这个问题也适用于JavaScript,你不能这样缩写。您必须执行上一个代码块中的完整语法。如果要缩短它,可以将与
$a
进行比较的变量放入一个数组中,并在\u array()中使用
。这通常会起作用,但并不总是如此,这取决于实际值。但无论如何,这并不是很好,因为您正在用一块代码交换另一块代码,所以您并没有真正缩短代码

可选地,考虑使用<代码>开关<代码>代替<代码> > ,特别是如果您需要根据这些条件中的哪一个来做不同的事情。 您是否可以缩写if语句中使用的比较,例如

$a==($b | |$c | |$d)

否。括号中的表达式首先求值,即
($b | | |$c | |$d)
求值为第一个真实值。让我们考虑<代码> $b=0,$c=“fo”,$d=null ,然后<代码>($b${$$c$$d)将导致<代码> 'fo',因此你将最终比较<代码> $a==$c<代码> >

相关的:


(实际上,我是针对JavaScript回答这个问题的(
$a
在JS中是一个有效的变量名),但在PHP中也是一样的)。

不,不能这样缩写。但是,如果您想将x与大量变量进行比较,可以使用循环并遍历要将x与之进行比较的变量,每次循环执行一次比较。

您必须完整地写出它。是的,应该完整地写出“这个问题同样适用于JavaScript”-不会,因为在某些语言中,
|
总是返回布尔值,但在JS中却不返回。这个问题似乎离题了,因为它基于一个错误的假设,即所有语言都以相同的方式工作。@PeeHaa:你的意思是它们不返回布尔值?难怪我的C++不能编译!如果你将x与50个其他变量进行比较,你可能想这样做……感谢所有回答的人,我认为这是最有启发性的,包括有用的链接。