编写一个关于PHP的控制台打印函数

95 阅读1分钟

有些框架在启动后会出现大量的debug信息扰乱视线,自带的打印函数又比较简陋,所以我实现了一个简单的带颜色和分割线的打印方法,方便再控制台进行调试

if (! function_exists('console')) {  
    function console($data, $color = '')  
    {  
        $output = '************************* [ 打印开始 ] *************************';  
        $output .= "\n";  

        if (is_array($data) || is_object($data)) {  
            $output .= print_r($data, true);  
        } elseif (is_bool($data)) {  
            $output .= $data ? 'true' : 'false';  
        } else {  
            $output .= "{$data}";  
        }  

        // 添加 ANSI 转义序列  
        $colors = [  
            'blue' => '0;34',  
            'green' => '0;32',  
            'light_green' => '1;32',  
            'red' => '0;31',  
            'light_red' => '1;31',  
        ];  

        $color_code = empty($color) ? $colors[array_rand($colors)] : null;  
        $output .= "\n";  
        $output .= '************************* [ 打印结束 ] *************************';  

        if ($color_code) {  
            $output = "\033[{$color_code}m{$output}\033[0m";  
        }  

        echo $output . "\n";  
    }  
}