国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

通過自己PHP編碼實現var_dump()方法

alighters / 2401人閱讀

摘要:個人學習筆記核心源碼如下打印打印單個變量打印數組前置空格打印對象前置空格測試代碼效果如下

個人學習筆記
核心源碼如下:
/**
 * 打印
 * @param array ...$params
 * @author klinson 
 */
function info(...$params)
{
    foreach ($params as $param) {
        info_item($param);
    }
}

/**
 * 打印單個變量
 * @param $param
 * @param int $i
 * @author klinson 
 */
function info_item($param, $i = 0)
{
    switch (gettype($param)) {
        case "array":
            info_array($param, $i);
            break;
        case "object":
            info_object($param, $i);
            break;
        case "boolean":
            echo "bool(".($param ? "true" : "false").")";
                break;
        case "integer":
            echo "int({$param})";
            break;
        case "string":
            echo "string({$param})";
            break;
        case "double":
            echo  "float({$param})";
            break;
        case "null":
            echo "null";
            break;
        case "resource":
            echo "resource";
            break;
        default:
            echo "UNKNOWN TYPE";
            break;
    }
    echo PHP_EOL;
}

/**
 * 打印數組
 * @param $param
 * @param int $i
 * @author klinson 
 */
function info_array($param, $i = 0)
{
    // 前置空格
    $space = "";
    $num = $i;
    while ($num) {
        $space .= "  ";
        $num--;
    }

    echo "array[".count($param)."]: {".PHP_EOL;
    foreach ($param as $key => $item) {
        echo $space."  [{$key}] => ";
        info_item($item, $i+1);
    }
    echo $space."}";
}

/**
 * 打印對象
 * @param $param
 * @param int $i
 * @author klinson 
 */
function info_object($param, $i = 0)
{
    // 前置空格
    $space = "";
    $num = $i;
    while ($num) {
        $space .= "  ";
        $num--;
    }

    echo "object(".get_class($param)."[".count($param)."]): {".PHP_EOL;
    foreach ($param as $key => $item) {
        echo $space."  [{$key}] => ";
        info_item($item, $i+1);
    }
    echo $space."}";
}
測試代碼:
$a = 1.11;
$b = "a";
$c = [$a, $b];
$d = new stdClass();
$d->aaa = "aaa";
$d->bb = $c;
info($a, $b, $c, $d);
效果如下:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29843.html

相關文章

  • PHP細節:foreach、(漢子)字符串反轉、isset,empty用法區別以及0、‘’、null

    摘要:規定要反轉的字符串。參考文檔實現字符串翻轉包含中文漢字參考處理漢字官方文檔函數最下面給出了支持的方案三用法區別以及之間關系用法如果是非空或非零的值,則返回。若想檢測常量是否已設置,可使用函數。 一、foreach 第一題: //1.for循環執行幾次 //for($i=0;$i=1;$i++){ // echo $i; //} $i==1條件很成立,死循環 for($i=0;$...

    孫淑建 評論0 收藏0
  • PHP7新特性的介紹

    摘要:截止到目前為止,官方已經發布了的版本,距離發布第一個正式版本不會很遠了現在來說的重大特性肯定已經是定型了,不會再有什么變動了。 截止到目前為止,PHP官方已經發布了php7的RC7版本,距離發布第一個正式版本不會很遠了!現在來說php7的重大特性肯定已經是定型了,不會再有什么變動了。后續一些版本的迭代主要也就是修修bug,優化之類的。下面就來說話我們一直期待的php7會有那些主要的變化...

    klivitamJ 評論0 收藏0
  • php獲取編碼方式及改變編碼方法

    摘要:場景說明此變量存儲的為通過等方式獲取到的字符串,拿到后瀏覽器為亂碼實際為,轉化編碼格式后為正常數據,拿到中也為,但是此碼就是為得到目前編碼轉化編碼字不如圖是最常用的表示方法。瀏覽器編碼表上的,通常都是指表示法。 抓xx頁面的時候,雖然返回數據為json格式的,但是是非utf-8的,這樣json_decode的時候返回的是null,因為json只是支持UTF-8/ASCII,應該也有其他...

    qylost 評論0 收藏0
  • php如何openssl_encrypt加密解密

    摘要:密鑰長度是位,超過位數密鑰被忽略。跨語言做加密解密經常會出現問題,往往是填充方式不對編碼不一致或者加密解密模式沒有對應上造成。是為了兼容用加密的結果。 最近在對接客戶的CRM系統,獲取令牌時,要用DES方式加密解密,由于之前沒有搞錯這種加密方式,經過請教了百度和谷歌兩個老師后,結合了多篇文檔內容后,終于實現了。 一、DES介紹 DES 是對稱性加密里面常見一種,全稱為 Data Enc...

    JouyPub 評論0 收藏0
  • PHP面試之一:PHP基礎知識點

    摘要:之前,第三方編譯是管理器,是解釋器之后,官方自帶,與模式。又是解釋器,又是管理器以模塊模式運行常見配置數組排序 PHP引用變量 什么是引用變量?如何定義引用變量? 引用意味著用不同的名字訪問同一個內容定義引用變量:使用& 引用變量的工作原理 普通變量的工作原理 $a = range(0,10000); var_dump(memory_get_usage()); //int(7420...

    waterc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<