zoukankan      html  css  js  c++  java
  • isset和empty以及变量自身作为条件的一些情况对比!

      虽然说这些都是非常简单的一些条件判断函数,但是把它们混在一起,在工作中往往就会很容易出现混淆!所以我决定把它们用程序过一遍!防止后面又忘记或者又把一些条件混掉了!

      

    <?php
    
        $arr = array();
        $arr2 = array('a'=>'');
        $arr3 = array('a'=>null);
    
        $d = false;
        $e = 0;
        $f = '';
        var_dump(isset($arr2['a']));
        var_dump(isset($d));
        var_dump(isset($e));
        var_dump(isset($f));
        var_dump(isset($arr));//全部为ture
        echo '<br>';
    
    //==========================================================
        $a;
        $b=null;
        $i = '0.0';
        $h = '00';
        $j = '';
        $aa = '  ';
    
        var_dump(empty($a));
        echo '<br>';
        var_dump(empty($b));
        echo '<br>+++++++++++++';
        var_dump(empty($j));
        echo '<br>++++++++++++++++<br>';
        var_dump(empty($c));//这4个都是true
        echo '<br>';
        echo 'mark';
        var_dump(isset($aa));//true
    
        echo '测试空格字符串empty';
        var_dump(empty($aa));//false
    
        echo '<br>123=============================';
        var_dump(empty($i));
        echo '<br>';
        var_dump(empty($h));
        echo '<br>22222222222222222222222';//这两个为字符串,为false
    
    //=========================================
        echo '<br>';
    
        var_dump(isset($a));
        echo '<br>';
        var_dump(isset($b));
        echo '<br>';
        var_dump(isset($c));//这3个都是false  未定义的或者定义为null,定义了为赋值的都为false!
    
    
    //=========================================================
    $x = '  ';
    $y = '';
    $z = '0';
    $zz = '00';
    
    var_dump($x);//string ,单独做条件不是false
    var_dump($y);//string,单独做条件为false
    var_dump($z);//string,单独做条件为false
    var_dump($zz);//string ,单独做条件不是false
    
    if($x){
        echo '123';
    }//会输出
    
    
    if($y){
        echo '123';
    }//不会输出
    echo '++++++++++++++++++++++++++++++++++++++<br>';
    if($z){
        echo '123';
    }//不会输出
    
    if($zz){
        echo '123';
    }//会输出
    
    
    echo '<br>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++================================';
    //多空个字符串的判断
    $bb = '   ';
    
    var_dump(trim($bb));
    
    if(trim($bb)==''){
        echo '123<br>';
    }//会输出
    
    
    
    $cc = array();
    $dd = array('a'=>'');
    $ee = array('a'=>null);
    
    if($cc){
        echo 'bbbbb123';
    }//不会输出
    
    if($dd){
        echo 'bbbbb456<br>';
    }//会输出,只要有键存在作条件就是true
    
    if($ee){
        echo 'bbbbb789';
    }//会输出,只要有键存在作条件就是true
    
    
    var_dump($cc);//array(0){} 拿空数组作条件时,为false.
    echo '<br>';
    var_dump(empty($cc));//true  空数组的empty为true
    var_dump(isset($cc));//true  空数组的isset为true,只有null为false
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/lgqtecng/p/6592653.html
Copyright © 2011-2022 走看看