php中函數 isset(), empty(), is_null() 的區別,boolean類型和string類型的false判斷


php中函數 isset(), empty(), is_null() 的區別,boolean類型和string類型的false判斷

實際需求:把sphinx返回的結果放到ssdb緩存里,要考慮到sphinx開始沒有數據,掛掉后恢復的情況。

開始實用empty函數發現sphinx掛掉后返回的內容為空,sphinx恢復后也一直進入不了,后面打印出為NUll值加上is_null判斷還是不行,如果sphinx為空,ssdb會返回一個false的字符串,不是boolean類型的,empty函數和is_null函數都返回true,所以還必須加上個!='false' 的判斷才行。

實戰代碼:

$ssdb = new SimpleSSDB(REDIS_HOST,REDIS_PORT);
            $key = SITE_DOMIAN.'articles'.$page_size.$page.md5($keyword);
//             print_r($key);

// var_dump($articles);
// var_dump(gettype($articles));

            $articles = $ssdb->get($key);
            if(empty($articles) || is_null($articles) || $articles=='false'){
//                 print_r('into sphinx...');
                $cl = new SphinxClient ();

下面是一個比較詳細的php類型對應的返回值

更多詳情的可參考:http://php.net/manual/en/types.comparisons.php

總結:當結果不符合預期的時候,需要多打印出相關參數來驗證代碼是否正確,需要打印類型和值出來進行測試,然后查對照表確定。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM