博客列表 >is_null(),empty(),isset()三个函数的功能,参数,返回值+手抄作业

is_null(),empty(),isset()三个函数的功能,参数,返回值+手抄作业

钱光照的博客
钱光照的博客原创
2018年04月13日 13:13:061864浏览

特别提示:这三个函数仅适用于变量判断,不要直接到用字面量上面。

 一、is_null()函数的功能,参数,返回值

1.功能: is_null() — 检测变量是否为 NULL;

2.语法: bool is_null ( mixed $var )

如果 $var 是 null 则返回 TRUE,否则返回 FALSE。
查看 NULL 类型获知变量什么时候被认为是 NULL,而什么时候不是。

参数描述: mixed 说明$var参数可以接受多种不同的(但不一定是所有的)类型。    

3.技术细节

* 返回值:

* 1.变量已声明但未初始化,默认为null值

 * 2.变量显示赋值为null

 * 3.unset()销毁后,变量为null值

 * 总结:变量不存在/没赋值/值为null,则返回true 。

适用PHP 版本:PHP 4 >= 4.0.4, PHP 5, PHP 7    


实例

<?php
$val1;           //已声明,但未赋值
$val2 = null;  //直接用null初始化变量
$val3 = 'php';  //赋值变量
unset($val3);   //彻底销毁变量

@var_dump(is_null($val1) ? true : false); //显示true
var_dump(is_null($val2) ? true : false); //显示true
@var_dump(is_null($val3) ? true : false); //显示true
echo '<hr>';
var_dump(is_null(''));       //注意:空字符串返回false
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



 二、empty()函数的功能,参数,返回值

1.功能: empty() — 检查一个变量是否为空

2.语法: bool empty ( mixed $var )

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

参数描述: 在 PHP 5.5 之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误。换言之,下列代码不会生效: empty(trim($name))。 作为替代,应该使用trim($name) == false.

没有警告会产生,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。    

3.技术细节

* 返回值:当$var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.

备注:以下的值被认为是空的:

          "" (空字符串)

          0 (作为整数的0)

          0.0 (作为浮点数的0)

          "0" (作为字符串的0)

          NULL

          FALSE

          array() (一个空数组)

          $var; (一个声明了,但是没有值的变量)

适用PHP 版本:PHP 4 >= 4.0.4, PHP 5, PHP 7

 * 总结:

 * 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断

 * 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空

 * 3. null一定是空,但空不一定是null,因为它可能是空值或0或false

思考: 判断用户是否在文本框输入了内容,应该用is_null()还是empty()?

 * 答案: 必须用empty(),不能用is_null()

 * 原因: 因为文本框的value值默认为空字符串,即 value = '',已被赋值了,只是空值罢了

 * 所以,is_null()仅能检查值为null或没有,必须用empty()才可以

实例

<?php

$str1 = '';           //空字符串

$str2 = [];          //变量值是空

$str3 = '0';         //字符串‘0’

$str4 = 0;           //整数0

$str5 = null;       //变量为空

$str6 = false;      //布尔值为false

$str7 = 'peter zhu';      //有内容的字符串

$str8=0.0          //浮点数0

echo '<hr>';

var_dump(empty($str1) ? true : false);     //空字符串,返回true

var_dump(empty($str2) ? true : false);     //空数组,返回true

var_dump(empty($str3) ? true : false);     //字符型数字0 ,返回true

var_dump(empty($str4) ? true : false);     //数字0,返回true

var_dump(empty($str5) ? true : false);     //null值,返回true

var_dump(empty($str6) ? true : false);    //布尔false,返回true

var_dump(empty($str7) ? true : false);    //有值且不为空,返回false

var_dump(empty($str8) ? true : false);    //浮点数0,返回true

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


三、isset()函数的功能,参数,返回值

1.功能: isset() — 检测变量是否已设置并且非 NULL

2.语法: bool isset ( mixed $var [, mixed $... ] )

检测变量是否设置,并且不是 NULL。

参数描述:     

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

3.技术细节

 isset()是null的取反操作;变量已经存在,并且它的值不为null,返回true,否则为false

isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

适用PHP 版本:PHP 4 >= 4.0.4, PHP 5, PHP 7

实例

<?php

$domain = 'www.php.cn';

$name = null;

$job;

echo '<hr>';

var_dump(isset($var));               // 未定义变量,返回false

var_dump(isset($domain) ? true : false);    // 变量已申明,且不为Null,返回true

var_dump(isset($name) ? true : false);     // 变量已申明,但为Null,返回false

var_dump(isset($job) ? true : false);     //变量已申明未赋值,并不报错,与is_null不同,返回false

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


四、总结:

 * 1. 变量有二种状态: 已声明, 未声明

 * 2. 已声明的变量也有二种状态: 已赋值(初始化), 未赋值(未初始化)

 * 3. 变量可能会被赋值类型: null, 空值, 非空值

        * 3.1: null值: is_null()

        * 3.2: 空值: empty()

        * 3.3: 空值或非空值: isset()

 *

 * 4基本使用原则:

       * 4.1. 对于未声明的变量只能使用isset()进行判断

       * 4.2. 对于已声明的变量,为空判断用empty(),是否初始化判断用is_null()

 */

实例

<?php

//第一种场景: 变量未声明

//$a未声明

var_dump(isset($a) ? true : false);  //不报错,返回false表示未声明

//实例:在分页显示数据的时候,如果当前的url中有分页变量page,则输出指定页,否则就默认输出第一页数据

$name = isset($_GET['page']) ? $_GET['page'] : 1;

//is_null会给出警告,并自动执行 $a = null, 所以会返回true

var_dump(is_null($a) ? true : false);

//因为未声明的变量会自动初始化为null,而对于值为null的变量,empty()会认为是空,所以返回true

var_dump(empty($a) ? true : false);

echo '<hr color="blue">';

// 第二种场景: 变量已声明

$a = 'www.php.cn';

$b = '';

$c = null;

var_dump(isset($a));  //有无判断

var_dump(empty($b));  //非空判断

var_dump(is_null($c)); //null

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


//初始化变量的原则:

//1.在预知变量类型的情况下

//$num = 0; //数值

//$userName = ''; //字符串

//$isPass = false; //布尔

//$books = []; //数组

//$student = null; //对象

//2.不确定变量最终会保存什么值,建议用null进行初始化



五、手抄作业


1523710651409_副本.jpg1523710735801_副本.jpg1523710785529_副本.jpg1523710841631_副本.jpg1523710873747_副本.jpg1523710909029_副本.jpg1523711268416_副本.jpg




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议