• php部分---include()与require()的区别、empty()与isset is_null的区别与用法详解


    include()与require()的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。

    1.处理错误的方式:

    require()一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
    include()一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

    2.返回值

    include有返回值,而require没有

    3.引入时间不同:

    require()通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。

    include()一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。



    isset()与empty()两者都是测试变量用的。
    isset()是测试变量是否被赋值;
    empty()是测试一个已经被赋值的变量是否为空
    注意如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示。

    如果一个变量被赋空值,$aa=”“或者$aa=0或者$aa=false,那么empty($aa)返回真,isset($aa)也返回真,就是说赋空值不会注销一个变量

    要注销一个变量,可以用 unset($aa)或者$aa=NULL。


    误区:当一个变量值等于0时,empty()也会成立(True)。

    empty 和 isset 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:

    empty还会检测变量是否为空、为零。当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置,返回true

    而isset则认为变量已生成,返回0

    <?php
    $aa=0;
    var_dump(empty($aa));  //返回true
    var_dump(isset($aa));  //返回true
    ?>

    这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty 要小心,这个时候用 isset 取代它更明智一些。


    empty用于判断是否为空, 空的概念非常广泛, 包括:
    (1)数字0;
    (2)空的字符;
    (3)定义为null的变量;
    (4)定义为false的变量;
    (5)空数组;
    (6)未定义变量。
    更重要的, empty只能判断变量, 而不能判断其他任何形式的内容, 也就是说
    empty(false);会触发一个错误, 而不是返回true

    PHP的isset()函数 一般用来检测变量是否设置
    功能:检测变量是否设置
    返回值:
    若变量不存在则返回 FALSE
    若变量存在且其值为NULL,也返回 FALSE
    若变量存在且值不为NULL,则返回 TURE
    同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
    更多说明:
    使用 unset() 释放变量之后,它将不再是 isset()。
    PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。
    检测常量是否已设置可使用 defined() 函数。
    PHP的empty()函数 判断值为否为空
    功能:检查一个变量是否为空
    返回值
    若变量不存在则返回 TRUE
    若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE
    若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE



    检测常量是否已设置可使用 defined() 函数。
    例子: empty() 与 isset() 的一个简单比较
    代码如下:

    <?php
    $var = 0;
    
    if (empty($var)) {
    echo '11111111';// 结果为 true,因为 $var 为空
    }
    
    if (!isset($var)) {
    echo '111111';// 结果为 false,因为 $var 已设置
    }
    ?>

    附加:

    php中几个函数的比较

     

    这些函数是:empty(), isset(), is_null()。

    第一个是:empty()
    功能:
    原型:bool empty ( mixed var)
    如果 var 是非空或非零的值,则 empty() 返回 FALSE
    这里指的“空”意思是 ""、0、"0"、NULLFALSEarray()、var $var;没有任何属性的对象都将被认为是空的.
    如果 var 为空,则返回 TRUE. 除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词.
    : 由于这是一个语言结构而非函数,因此它无法被变量函数调用。
    : empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用:empty(addslashes($name)).

    第二个是:isset()
    功能:检测变量是否设置
    原型:bool isset ( mixed var [, mixed var [, ...]])
    如果 var 存在则返回 TRUE,否则返回 FALSE
    如果已经使用 unset() (2)释放了一个变量之后,它将不再是 isset()
    若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE
    要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数
    注意!!!
    isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数来检测.
    这个函数同empty()一样,是一个语言结构而非函数,因此它无法被变量函(注1)调用.

    在这里我把这两个函数对比一下,这样会更清楚一下
    <?php
        $a = 0;
        if(empty($a)) // 应该返回true;
        if(isset($a)) //应该返回false;
    ?>

     

  • 相关阅读:
    大三寒假第十四天
    大三寒假第十一天
    大三寒假第十二天
    SparkSQL 通过jdbc连接数据库/通过hive读写数据
    bootstrapfileinput上传控件
    信用卡评分模型(五)
    “元宇宙”是什么?它到底有哪些大招?
    如何学习游戏引擎?
    Web开发的26项基本概念和技术总结
    游戏引擎开发和游戏客户端开发有什么区别?
  • 原文地址:https://www.cnblogs.com/xingyue1988/p/6215440.html
Copyright © 2020-2023  润新知