我在php中做了一些代碼,這是一個關於實現代表顏色的類的練習。rgb值到php中的r,g,b值
該課程是爲了讓我可以收到3個'紅','綠'和'藍'值,這些值不會打擾我,但我也可以收到'rgb'值。
最後,這裏是其中的伎倆來處理「RGB」情況下,代碼:
if (array_key_exists('rgb', $kwargs))
{
$this->red = intval($kwargs['rgb']) >> 16 & 255;
$this->green = intval($kwargs['rgb']) >> 8 & 255;
$this->blue = intval($kwargs['rgb']) & 255;
}
不過,我真的不明白爲什麼我們需要「& 255」。
爲什麼我不能簡單地單獨使用右移來將值轉換回來?
我的意思是,如果我收到:'rgb'中的00000001 00000001 00000001,如果我>> 16,我應該得到1,如果我>> 8,我也應該得到1, ?我看了'&'操作符,它說它應該作爲一個掩碼(如果我正確理解了掩碼的概念),但是在掩碼操作之後,我仍然會得到與(1,1,1)之前。我不明白爲什麼這個'& 255'是必要的(我試過沒有它,它不工作)。
感謝任何花時間回答我的人。
您的代碼是否按照您期望的那樣工作? – Rizier123