因為我個人是 print_r 的愛用者,但有一個問題一直很困擾我,就是布林值無法正常顯示的問題。
我後來花了一點時間寫了一個 function 叫 print_r_fix 來解決這個問題,有需要的朋友請自行取用。

程式碼

<?php
/**
* 修正 print_r 無法正常顯示布林值的問題
* 直接把布林值取代成字串
* @author Leo.Kuo
*/
function print_r_fix($value)
{
    function print_r_boolean_fix($value)
    {
        if (is_array($value))
        {
            foreach ($value as $key => $v)
            {
                $value[$key] = print_r_boolean_fix($v);
            }
        }
        else if (gettype($value) == "boolean")
        {
            $boolean_str = ($value) ? "True" : "False";
            $value = "{$boolean_str} (Boolean)";
        }

        return $value;
    }
    print_r(print_r_boolean_fix($value));
}

/************************** demo ******************************/
$arr = array
(
    'a' => 1,
    'b' => FALSE,
    'c' => array
    (
        'e' => TRUE,
        'f' => 'Hello World!',
        'g' => array
        (
            'h' => FALSE,
            'i' => 1.234
        )
    )
);

echo "<pre>";
print_r_fix($arr);
echo "</pre>";
?>

 執行結果

Array
(
    [a] => 1
    [b] => False (Boolean)
    [c] => Array
        (
            [e] => True (Boolean)
            [f] => Hello World!
            [g] => Array
                (
                    [h] => False (Boolean)
                    [i] => 1.234
                )
        )
)

 GitHub: https://github.com/fishingboy/Library/blob/master/PHP/print_r_fix.php

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 wbkuo 的頭像
    wbkuo

    長島冰茶的工程師筆記

    wbkuo 發表在 痞客邦 留言(0) 人氣()