неподписанный tinyint в php?

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

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

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

Но это является подробным :P

Существует ли умный, один-linish способ, которым я могу заставить значение оставаться между 0 и 255?

5
задан user151841 29 April 2010 в 15:54
поделиться

2 ответа

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

11
ответ дан 13 December 2019 в 05:32
поделиться

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

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

Пример:

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

распечатает все числа от 0 до 255.

1
ответ дан 13 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: