我在php中创建了一个clamp()函数,并决定使用嵌套的三元表达式来尝试它。 最后,我决定使用这个(工作)功能:
function clamp($value, $min, $max){
return
$value<$min ? $min
: ($value>$max ? $max
: $value);
}
但是,为什么第二个表达式的括号需要?之后我尝试删除它们:..
function clamp($value, $min, $max){
return
$value<$min ? $min
: $value>$max ? $max
: $value;
}
...但在此版本中,如果$max
小于$value
,则会返回$min
。我只是不明白它是如何产生的。
答案 0 :(得分:0)
我听说过php有&#34;左关联&#34;与三元一样,虽然我从未理解它的含义:
取
$bool ? "a" :
正确的关联性是:($bool ? "b" : "c")
($bool ? "a" : $bool)
左关联性是:? "b" : "c"
$bool ? $bool ? "c" : "b" : "a"
所以最后php总是会评估为b或c。
加成:
pygame.Colors
这是一种我认为不会根据关联性改变含义的语法。
我想知道人们是否设法找到了这个变种的漂亮缩进。