public static function parse($color) 
    {
        if (gettype($color) == "integer") {
            return $color & 0xffffffff;
        }

        $color = "$color";

        if (preg_match('/^#?[0-9a-fA-F]+$/', $color)) {
            $hexColor = $color; 
            if ($hexColor[0] == '#') {
                $hexColor = substr($hexColor, 1);
            }

            switch (strlen($hexColor)) {
                case 3:
                    $numeric = intval($hexColor, 16);
                    return (
                        (($numeric & 0xf00) << 20) |
                        (($numeric & 0xf00) << 16) |
                        (($numeric & 0x0f0) << 16) |
                        (($numeric & 0x0f0) << 12) |
                        (($numeric & 0x00f) << 12) |
                        (($numeric & 0x00f) << 8) | 
                        0xff);
                case 6:
                    return (intval($hexColor, 16) << 8) | 0xff;
                case 8:
                    // Workaround to cope with PHP limitation of intval
                    $numeric = 
                        (intval(substr($hexColor, 0, 4), 16) << 16) |
                        (intval(substr($hexColor, 4, 4), 16));
                    return $numeric;
            }
        }

        throw new \InvalidArgumentException("Invalid color '$color'.");
    }
public static function parse($color) 
    {
        if (gettype($color) == "integer") {
            return $color & 0xffffffff;
        }

        $color = "$color";

        if (preg_match('/^#?[0-9a-fA-F]+$/', $color)) {
            $hexColor = $color; 
            if ($hexColor[0] == '#') {
                $hexColor = substr($hexColor, 1);
            }

            switch (strlen($hexColor)) {
                case 3:
                    $numeric = intval($hexColor, 16);
                    return (
                        (($numeric & 0xf00) << 20) |
                        (($numeric & 0xf00) << 16) |
                        (($numeric & 0x0f0) << 16) |
                        (($numeric & 0x0f0) << 12) |
                        (($numeric & 0x00f) << 12) |
                        (($numeric & 0x00f) << 8) | 
                        0xff);
                case 6:
                    return (intval($hexColor, 16) << 8) | 0xff;
                case 8:
                    // Workaround to cope with PHP limitation of intval
                    $numeric = 
                        (intval(substr($hexColor, 0, 4), 16) << 16) |
                        (intval(substr($hexColor, 4, 4), 16));
                    return $numeric;
            }
        }

        throw new \InvalidArgumentException("Invalid color '$color'.");
    }
public static function parse ( $ color ) { if ( gettype ( $ color ) == "integer" ) { return $ color & 0xffffffff ; } $ color = "$color" ; if ( preg_match ( '/^#?[0-9a-fA-F]+$/' , $ color ) ) { $ hexColor = $ color ; if ( $ hexColor [ 0 ] == '#' ) { $ hexColor = substr ( $ hexColor , 1 ) ; } switch ( strlen ( $ hexColor ) ) { case 3 : $ numeric = intval ( $ hexColor , 16 ) ; return ( ( ( $ numeric & 0xf00 ) << 20 ) | ( ( $ numeric & 0xf00 ) << 16 ) | ( ( $ numeric & 0x0f0 ) << 16 ) | ( ( $ numeric & 0x0f0 ) << 12 ) | ( ( $ numeric & 0x00f ) << 12 ) | ( ( $ numeric & 0x00f ) << 8 ) | 0xff ) ; case 6 : return ( intval ( $ hexColor , 16 ) << 8 ) | 0xff ; case 8 : // Workaround to cope with PHP limitation of intval $ numeric = ( intval ( substr ( $ hexColor , 0 , 4 ) , 16 ) << 16 ) | ( intval ( substr ( $ hexColor , 4 , 4 ) , 16 ) ) ; return $ numeric ; } } throw new \ InvalidArgumentException ( "Invalid color '$color'." ) ; }
Parses a value to a 32-bit color on the format 0xRRGGBBAA.

@param integer|string $color  The value to parse.
@return integer
Parses a value to a 32 - bit color on the format 0xRRGGBBAA .