您的位置:首页 > 产品设计 > UI/UE

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

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

1.处理错误的方式:

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



2.返回值

include有返回值,而require没有

3.引入时间不同:

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

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

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"、NULLFALSE、array()、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;
?>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: