unsigned tinyint в php? - PullRequest
       12

unsigned tinyint в php?

5 голосов
/ 29 апреля 2010

Я работаю над классом для манипулирования html-кодами шестнадцатеричных цветов в php. Внутри класс обрабатывает значения RGB как десятичные числа. Когда я добавляю или вычитаю, я никогда не хочу, чтобы значение превышало 255 и не превышало ноль.

Если конечно, я могу сделать что-то по частям, как

if ( $val >  255 ) {
    $val = 255;
} 
if ( $val < 0 ) {
    $val = 0;
}

Но это многословно: P

Есть ли один умный способ, позволяющий получить значение в диапазоне от 0 до 255?

Ответы [ 3 ]

11 голосов
/ 29 апреля 2010

Вы могли бы сказать что-то вроде: $ val = max (0, min (255, $ val));

1 голос
/ 29 апреля 2010

Использование оператора побитового ИЛИ будет работать

if(($num | 255) === 255) { /* ... */ }

Пример:

foreach (range(-1000, 1000) as $num) {
    if(($num | 255) === 255) {
        echo "$num, ";
    };
}

выведет все цифры от 0 до 255.

0 голосов
/ 01 июля 2011

Или вы можете быть тем парнем, который использует вложенные троичные операторы.

например.

( ($num > 255) ? 255 : ( ($num < 0) ? 0 : $num) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...