php中empty与isset用法与区别

 代码如下 复制代码

$a=0;
这个时候
empty($a) == true;
isset($a) == true;

$a=1;
这个时候
empty($a) == false;
isset($a) == true;

在没有定义$a的时候,isset($a) == true;
empty($a) == true;

其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;

如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;

如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;

实例

 代码如下 复制代码

//$a=0;
//这个时候
var_dump (empty($a));// == true;
var_dump (isset($a));// == true;

//$a=1;
//这个时候
var_dump (empty($a));// == false;
var_dump (isset($a));// == true;

//在变量没有被定义$bbbbbbbbbb的时候,

var_dump (isset($bbbbbbbbbb));// == false;
var_dump (empty($bbbbbbbbbb));// == true;

实例

 代码如下 复制代码

<?php

/**
*    isset  — 检测变量是否设置
*    如果 变量 存在则返回 true, 否则返回 false
*
*    empty  — 检查一个变量是否为空
*    如果 变量 是非空或非零的值,则 empty() 返回 false
**/

$is_var = '';

if(isset($is_var)) {
    echo "变量存在!<br />";
} else {
    echo "变量不存在!<br />";
}

if(empty($is_var)) {
    echo "变量为空!<br />";
} else {
    echo "变量不为空!<br />";
}

?>

empty() 判断一个变量是否为“空”,isset() 判断一个变量是否已经设置。正是这种所谓的“顾名思义”,令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外。原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。

时间: 2024-07-29 08:17:04

php中empty与isset用法与区别的相关文章

php中empty和isset用法区别详解

isset  - 检测变量是否设置 PHP isset() 用于检测一个或多个变量是否设置,如果被检测的变量存在则返回 TRUE,否则返回 FALSE. 例子:  代码如下 复制代码 <?php $var = 1; if(isset($var)){     echo '变量 $var 已经被设置'; } else {     echo '变量 $var 还未被设置'; } ?> 运行该例子输出: 变量 $var 已经被设置 数组中的元素也同样有效:    代码如下 复制代码 <?php

PHP中empty和isset对于参数结构的判断及empty()和isset()的区别_php实例

废话不多说了,直接给大家贴代码了. <?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) { $s = 'a'.$i; echo $i . ":"; var_dump(isset($$s)); echo '&

Linux中yum和apt-get用法及区别

Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包,安装rpm包的命令是"rpm -参数" 2 包管理工具 yum 3 支持tar包 Debian系列 1 常见的安装包格式 deb包,安装deb包的命令是"dpkg -参数" 2 包管理工具 apt-get 3

浅析php中empty与isset区别

empty是判断变量值是非空或非零的值.对应空定义包括:""(空字符串).0."0".NULL.FALSE.array()和$var(只声明但未赋值).也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE. isset是检测变量是否设置,并且不是 NULL.变量设置可以从几个方面来说.1:最简单的就是变量是否先声明和赋值:2:array中是否存在对应的index或key:3:object中是否存在对应的属性. 从上面的两个function定义可

再谈php中empty与isset区别详解

empty是判断变量值是非空或非零的值.对应空定义包括:""(空字符串).0."0".NULL.FALSE.array()和$var(只声明但未赋值).也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE. isset是检测变量是否设置,并且不是 NULL.变量设置可以从几个方面来说.1:最简单的就是变量是否先声明和赋值:2:array中是否存在对应的index或key:3:object中是否存在对应的属性. 从上面的两个function定义可

php中empty()、isset()、is_null()和变量本身的布尔判断区别(转)

在php脚本中,我们经常要去判断一个变量是否已定义或者是否为空,就需要用到这些函数empty().isset().is_null()和其本身作为参数,下面小段程序做个简要比较 <?php//预定义变量数组:空字符,字符0,数组0,null,布尔false,空数组$arr_var = array('', '0', 0, null, false, array()); foreach ($arr_var as $value) { echo '<br>传入值为:' . $value . '<

深入分析js中call与apply用法与区别

对于call.apply最直接的理解就是继承. call和apply,它们的作用都是将函数绑定到另外一个对象上去运行 两者的格式和参数定义: call( thisArg [,arg1,arg2,- ] );       // 参数列表,arg1,arg2,... apply(thisArg [,argArray] );                 // 参数数组,argArray 上面两个函数内部的this指针,都会被赋值为thisArg,这可实现将函数作为另外一个对象的方法运行的目的 我们

php中$_GET,$_POST,$_REQUEST用法与区别分析

1. $_REQUEST 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组.  代码如下 复制代码 <?php $_GET['foo'] = 'a'; $_POST['bar'] = 'b'; var_dump($_GET); // Element 'foo' is string(1) "a" var_dump($_POST); // Element 'bar' is string(1) "b" var_dump($_REQUEST);

Html A标签中 href 和 onclick用法、区别、优先级别

如果不设置 href属性在IE6下面会不响应hover.双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题).  代码如下 复制代码 <a href="javascirpt:fn(this)"> <a onclick="fn(this)"> 假定我们有个fn方法,需要取到这个元素,第一个方法传入的this是空值. 所以,比较推荐的写法是  代码如下 复制代码 <a href="javascript:void(0)&