PHP基础:检查变量的函数——isset、is_null、empty。

PHP技术
379
0
0
2022-09-11
标签   PHP基础

前言:

看到老哥分享的面试复盘中出现了 empty 函数的试题,就回去翻了一下以前总结的笔记。想想还是写成博客吧,反正已经离不开这个论坛了,忘记了随时随地都能拿出来复习。

检查变量是否定义函数:isset()

  • 语法:
  • bool isset(mixed var);
  • 功能:
  • 检查变量是否定义。(定义 = 声明 + 赋值)
  • 返回值:
  • 布尔值。如果变量已经定义,返回TRUE,否则返回FALSE。
  • 例子:
<?php
$age; // 声明了变量,但没赋值。
if(isset($age)){
    echo 'true';
}else{
    echo 'false';
}

// 输出:false。
$age = 20;
if(isset($age)){
    echo 'true';
}else{
    echo 'false';
}
// 输出:true。

检查变量是否为空的函数:

一、is_null()
  • 语法:
  • bool is_null(mixed var)
  • 功能:
  • 检查变量var是否为NULL。
  • 返回值:
  • 如果为NULL,返回TRUE,否则返回FALSE。
  • 变量的值为NULL的三种情况。
  • 变量未经定义。
  • 变量的值赋值为NULL。
  • 变量经过unset()函数处理后。
  • 未经定义、赋值为NULL、unset处理。
  • 类比:
  • 没有警告会产生,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false等价。
  • 变量为空的情况:
  • “” (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • “0” (作为字符串的0)
  • null
  • false
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)
  • 三零二空一null一false
  • 例子:
$age;
if (is_null($age)) {
    echo 'true';
} else {
    echo 'false';
}
/*
输出:
Notice: Undefined variable: age in D:\phpStudy\PHPTutorial\WWW\index\myframe2\note\检查变量的函数\test.php on line 8
true
确实没有定义,返回的是true。
但是,由于$age未经定义,因此is_null(mixed var)函数会抛出notice信息。如果变量的值赋值为NULL,则不会抛出notice信息。
*/
二、empty();
  • 语法:
  • empty(mixed $var): bool
  • 功能:
  • 检查一个变量是否为空。
  • 返回值:
  • 当var存在,并且是一个非空非零的值时返回 false 否则返回 true.
  • 例子:
if ($a='0' || $a=0 || $a=0.0 || $a = "" || $a=null || $a=[]) {
    echo 'true';
} else {
    echo 'false';
}
/*
输出:false;
*/
$a1 = '0';
$a2 = 0;
$a3 = 0.0;
$a4 = "";
$a5 = null;
$a6 = [];
$a7 = false;
$a8;
if (empty($a1) && empty($a2) && empty($a3) && empty($a4) && empty($a5) && empty($a6) && empty($a7) && empty($a8)) {
    echo 'true';
} else {
    echo 'false';
}

/*

输出:true;

*/