前言:
看到老哥分享的面试复盘中出现了 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;
*/