`
天梯梦
  • 浏览: 13730828 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHP中empty,is_null,isset中的异同和功能

PHP 
阅读更多

empty -- 检查一个变量是否为空
bool empty ( mixed var )

 

如果 var 是非空或非零的值,则 empty() 返回 FALSE 。换句话说,""0"0"NULL FALSE array()var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

 

empty() 与 isset() 的一个简单比较


<?php
$var = 0;

// 结果为 true,因为 $var 为空
if (empty($var)) {  
    echo '$var is either 0 or not set at all';
}

// 结果为 false,因为 $var 已设置
if (!isset($var)) {
    echo '$var is not set at all';
}
?>
 


empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))

 

isset -- 检测变量是否设置
bool isset ( mixed var [, mixed var [, ...]] )如果 var 存在则返回 TRUE , 否则返回 FALSE

 

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


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

 

 

<?php

$var = '';

// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {
    print "This var is set set so I will print.";
}

// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。

$a = "test";
$b = "anothertest";

var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUE

unset ($a);

var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE

$foo = NULL;
var_dump( isset ($foo) );   // FALSE

?>
 


对于数组中的元素也同样有效

 

 

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE

// 键 'hello' 的值等于 NULL,所以被认为是未置值的。
// 如果想检测 NULL 键值,可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE

?>
 

is_null --  检测变量是否为 NULL
bool is_null ( mixed var )
如果 varnull 则返回 TRUE ,否则返回 FALSE

 

总结:
empty在变量为null,0,"",'0',null,array()返回true
isset在判断null时返回false
is_null只要是null返回true,否则返回false


理解了这些,这三个函数足以区别开来了.

 

Comparisons of $x with PHP functions Expression gettype() empty() is_null() isset() boolean : if($x)
$x = “”; string TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = “1″; string FALSE FALSE TRUE TRUE
$x = “0″; string TRUE FALSE TRUE FALSE
$x = “-1″; string FALSE FALSE TRUE TRUE
$x = “php”; string FALSE FALSE TRUE TRUE
$x = “true”; string FALSE FALSE TRUE TRUE
$x = “false”; string FALSE FALSE TRUE TRUE

 

 

 

 

分享到:
评论

相关推荐

    php empty,isset,is_null判断比较(差异与异同)

    在PHP编程中,`empty`, `isset`, 和 `is_null` 是三个常见的用来检查变量状态的函数,它们各自有着特定的用途和行为。理解和正确使用它们对于编写无错且安全的代码至关重要。 **1. `empty`** `empty` 函数用于检查...

    PHP中empty,isset,is_null用法和区别

    在PHP编程中,正确理解和使用`empty`, `isset`, 和 `is_null`这三个函数至关重要,因为它们直接影响到代码的逻辑判断和错误处理。下面将详细解释这三个函数的用法和区别。 1. `empty()` 函数 `empty()` 用于检查...

    解析PHP中empty is_null和isset的测试

    以上就是PHP中empty、is_null和isset函数的详细解析和使用场景。了解这些函数的异同可以帮助PHP开发者更加精确地控制程序逻辑,避免因变量状态判断错误而引发的问题。在实际开发中,要根据具体的需求和场景来选择最...

    一张表搞清楚php is_null、empty、isset的区别

    在PHP编程语言中,了解如何正确使用`is_null`, `empty`, 和 `isset`这三个函数至关重要,因为它们在检查变量状态时起到关键作用。下面将详细阐述这三个函数的区别和使用场景。 1. `isset()` 函数: `isset()` 用于...

    php中is_null,empty,isset,unset 的区别详细介绍

    在PHP编程语言中,`is_null`, `empty`, `isset`, 和 `unset` 是四个非常常用的函数,它们各自有着特定的用途。理解它们的区别对于编写高效且无误的代码至关重要。 1. **`isset()`** `isset()` 函数用于判断一个...

    深入PHP empty(),isset(),is_null()的实例测试详解

    在PHP开发中,empty()、isset()和is_null()是三个经常被用于变量状态检测的函数。它们各自的检测规则和应用场景都不尽相同。理解这三个函数的不同之处对于编写健壮的代码非常重要。下面将详细解释这三个函数的用法和...

    PHP中的empty、isset、isnull的区别与使用实例

    做php开发时候,通常会用到empty,isset,is_null这几个函数,使用不当的话甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。因此开发时候,就没有注意,一段作为流程判断时候,就出现...

    PHP中isset、empty的用法与区别示例详解

    2. 特殊变量处理:如空字符串、`0`值(包括整数、浮点数和字符串“0”)、`NULL`和空数组,这些在`isset()`中被视为已设置的变量,但在`empty()`中会被认为是空的。 下面是一些使用`isset()`和`empty()`进行判断的...

    iOS一行代码集成空白页面占位图(无数据、无网络占位图)_emptyView-empty_set_LYEmptyView.zip

    iOS一行代码集成空白页面占位图(无数据、无网络占位图)_emptyView-empty_set_LYEmptyView

    PHP 判断数组是否为NULL的5大方法

    在PHP编程中,判断数组是否为NULL是一个常见的需求,特别是在处理用户输入或数据...而如果你需要区分NULL和空数组,`is_null()`或`empty()`则更合适。了解这些方法的差异可以帮助我们写出更健壮、更具可读性的代码。

    Empty Application_XL

    然而,这些模版都包含了一些默认的功能和文件,对于某些希望从零开始构建应用,或者需要特殊项目结构的开发者来说,可能会过于繁琐。"Empty Application"模版就是为了解决这个问题,它提供了一个精简到极致的起始点...

    PHP解决324 ERR_EMPTY_RESPONSE.zip

    在PHP开发过程中,可能会遇到一个名为“324 ERR_EMPTY_RESPONSE”的错误,这通常表示浏览器没有接收到服务器的完整响应。这个错误可能是由于多种原因引起的,包括但不限于服务器配置问题、PHP脚本错误、网络问题或者...

    空仓库empty_warehouse_01_VR游戏开发_天空盒子_Skybox_高清_16K_EXR

    可用于UnityVR开发,3D游戏开发,高清天空盒子Skybox素材,游戏环境背景素材,无水印。 让你身临其境的天空盒子,各类题材丰富,都是辛苦搜罗所得的高清exr... 4-用刚创建的Material代替项目中原本的系统默认Skybox

Global site tag (gtag.js) - Google Analytics