php中的unsigned tinyint?

时间:2010-04-29 15:54:00

标签: php types integer

我正在研究一个类来操作php中的html十六进制颜色代码。在内部,该类将RGB值视为小数。当我加或减时,我从不希望该值超过255,也不希望'subceed'为零。

如果当然,我可以像

那样零碎地做点什么
if ( $val >  255 ) {
    $val = 255;
} 
if ( $val < 0 ) {
    $val = 0;
}

但那很冗长:P

我是否有一种聪明的,有利可图的方法可以使值保持在0到255之间?

3 个答案:

答案 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) )