php 中无符号的tinyint?

发布于 2024-08-31 10:32:03 字数 301 浏览 2 评论 0原文

我正在开发一个类来在 php 中操作 html 十六进制颜色代码。在内部,该类将 RGB 值视为小数。当我进行加法或减法时,我从不希望该值超过 255 也不“低于”零。

如果当然,我可以做一些零碎的事情,比如

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

但这很冗长:P

有没有一种聪明的、单行的方法可以让值保持在 0 到 255 之间?

I'm working on a class to manipulate html hex color codes in php. Internally, the class treats RGB values as decimals. When I'm adding or subtracting, I never want the value to exceed 255 nor 'subceed' zero.

If course, I can do something piecemeal like

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

But that's verbose :P

Is there a clever, one-linish way I can get the value to stay between 0 and 255?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

盗心人 2024-09-07 10:32:03

你可能会这样说:
$val = max(0, min(255, $val));

You could possibly say something like:
$val = max(0, min(255, $val));

辞取 2024-09-07 10:32:03

使用 按位 OR 运算符 可以使用

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

示例:

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

将打印出来0 到 255 之间的所有数字。

Using the bitwise OR operator would work

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

Example:

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

would print out all the numbers from 0 to 255.

只是偏爱你 2024-09-07 10:32:03

或者您可能是那个使用嵌套三元运算符的人。

例如。

( ($num > 255) ? 255 : ( ($num < 0) ? 0 : $num) )

Or you could be that guy who uses nested ternary operators.

eg.

( ($num > 255) ? 255 : ( ($num < 0) ? 0 : $num) )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文