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
原文地址:https://www.cnblogs.com/lgqtecng/p/6592653.html