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

本文详细解释了PHP中include与require的区别,包括错误处理方式、返回值及引入时间的不同。并通过示例代码展示了isset与empty的功能及使用场景,帮助读者更好地理解和应用。

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 字节("\0")并不等同于 PHP 的 NULL 常数
注意!!!
isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数来检测.
这个函数同empty()一样,是一个语言结构而非函数,因此它无法被变量函(注1)调用.

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

 

转载于:https://www.cnblogs.com/xingyue1988/p/6215440.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值