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

总结:当结果不符合预期的时候,需要多打印出相关参数来验证代码是否正确,需要打印类型和值出来进行测试,然后查对照表确定。

 

posted @ 2019-10-17 02:57  大自然的流风  阅读(731)  评论(0编辑  收藏  举报