在任何“理智”编程语言中,从C到Javascript,如果a || b
为真,则a or b
(或a
)等表达式的评估结果为a
b
否则,为a = params.a || default_a
运算符创建类似and
和类似的内容,但PHP要求不同。
有没有办法在PHP中获取此功能?或者,有没有PHP程序员使用的“编码习惯/模式”而不是下面的代码?
$a = $my_a || $default_a; // nope, $a gets a boolean
因为写if ($my_a) $a = $my_a; else $a = $default_a;
或$a = $my_a ? $my_a : $default_a;
对我来说似乎非常难看,并且通过让我重复$my_a
之类的内容而违反基本的“干扰”代码,这也可能很长和复杂的表达。
这是一件小事,我知道,在double clawed hammer的土地上并不是那么奇怪,但它真的让我感到烦恼!
答案 0 :(得分:0)
值得一提的是:它是C和Javascript,这有所不同,因为“在'理智'语言中”(;))布尔运算的返回值是布尔值而不是其操作数之一。
然而
$a = $my_a ?: $default_a;