| |运算符能否用于在PHP中的非布尔类型的值之间进行选择?

| |运算符能否用于在PHP中的非布尔类型的值之间进行选择?,php,syntax,echo,Php,Syntax,Echo,是否可以使用|进行回显,以便使用计算结果为true的第一个变量 比如说, $a = false; $b = 'b'; echo $a || $b || 'neither'; // evaluates to 1 ? 终极三元 $a = false; $b = 'b'; echo ($a)?$a:(($b)?$b:'neither'); 如果有更多的变量,你会继续这样做,但如果变量太长,它会变得难看且难以读取。如果你有一个列表(多于两个),那么你可能需要考虑:echo current(arra

是否可以使用
|
进行回显,以便使用计算结果为true的第一个变量

比如说,

$a = false;
$b = 'b';
echo $a || $b || 'neither'; // evaluates to 1 ?

终极三元

$a = false;
$b = 'b';
echo ($a)?$a:(($b)?$b:'neither');

如果有更多的变量,你会继续这样做,但如果变量太长,它会变得难看且难以读取。

如果你有一个列表(多于两个),那么你可能需要考虑:
echo current(array_filter(array($a,$b,'note'))
听起来你的问题更像是“非布尔类型是否可以使用
|
运算符?”如果我理解正确的话。你好像在说$a | | |$b | | |两者都不返回1。@MartinAtkins是的,那太理想了@马里奥,那也行!谢天谢地,从技术上讲,这不再是三元运算符<代码>$a$b:$c之所以这样叫是因为它有3个操作数(而且没有其他标准运算符有)
$a?:$b
是一个看起来和工作起来有点像三元运算符的二进制运算符
文档仍然将其称为三元运算符
@MarkBaker他们说“可以省略三元运算符的中间部分”;他们没有说结果叫什么,可以说这是一个新的操作符。重要的是,它不是标准的三元运算符,因为这个术语在其他语言中是可以理解的。@MarkBaker对不起,我确实试图澄清我只是学究,没有批评你的答案。您链接到了正确的文档,关于正确的解决方案;似乎值得一提的是,这是一个PHP特定的三元运算符的修改形式,它不再是真正的三元运算符。
$a = false;
$b = 'b';
echo ($a)?$a:(($b)?$b:'neither');
echo $a ? $a : ($b ? $b : ($c ? $c : 'neither'));