我正在研究一个类来操作php中的html十六进制颜色代码。在内部,该类将RGB值视为小数。当我加或减时,我从不希望该值超过255,也不希望'subceed'为零。
如果当然,我可以像
那样零碎地做点什么if ( $val > 255 ) {
$val = 255;
}
if ( $val < 0 ) {
$val = 0;
}
但那很冗长:P
我是否有一种聪明的,有利可图的方法可以使值保持在0到255之间?
答案 0 :(得分:11)
您可能会说: $ val = max(0,min(255,$ val));
答案 1 :(得分:1)
使用bitwise OR operator可以正常工作
if(($num | 255) === 255) { /* ... */ }
示例:
foreach (range(-1000, 1000) as $num) {
if(($num | 255) === 255) {
echo "$num, ";
};
}
将打印出0到255之间的所有数字。
答案 2 :(得分:0)
或者你可能是那个使用嵌套三元运算符的人。
例如
( ($num > 255) ? 255 : ( ($num < 0) ? 0 : $num) )