Я работаю над классом, чтобы манипулировать html шестнадцатеричными цветовыми кодами в php. Внутри класс рассматривает значения RGB как десятичные числа. Когда я добавляю или вычитаю, я никогда не хочу, чтобы значение превышало 255, а «не начиналось» с нуля.
Если курс, я могу сделать что-то по частям
if ( $val > 255 ) { $val = 255; } if ( $val < 0 ) { $val = 0; }
Но это многословно: P
Есть ли умный, однолинейный способ, я могу заставить значение оставаться от 0 до 255?
Вы могли бы сказать что-то вроде: $ val = max (0, min (255, $ val));
Использование побитового оператора OR будет работать
if(($num | 255) === 255) { /* ... */ }
Пример:
foreach (range(-1000, 1000) as $num) { if(($num | 255) === 255) { echo "$num, "; }; }
будет распечатывать все числа от 0 до 255.
Или вы можете быть тем парнем, который использует вложенных троичных операторов.
например.
( ($num > 255) ? 255 : ( ($num < 0) ? 0 : $num) )