Heim >php教程 >php手册 >php中empty和isset用法区别详解

php中empty和isset用法区别详解

WBOY
WBOYOriginal
2016-05-25 16:43:341173Durchsuche

在php程序开中发很多朋友把握isset与empty搞混或搞不清楚什么时候用isset,什么时候用empty函数,下面我来介绍两者的区别.

isset — 检测变量是否设置

PHP isset() 用于检测一个或多个变量是否设置,如果被检测的变量存在则返回 TRUE,否则返回 FALSE.

例子代码如下:

<?php 
    $var = 1; 
    if(isset($var)){ 
        echo &#39;变量 $var 已经被设置&#39;; 
    } else { 
        echo &#39;变量 $var 还未被设置&#39;; 
    } 
     
    //运行该例子输出: 
    //变量 $var 已经被设置
?>

数组中的元素也同样有效,代码如下:

$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 

注意:

•isset() 只能用于检测变量,传递任何其它参数都将造成解析错误。

•isset() 是一个语言结构而非函数,因此它无法被变量函数调用。

empty  — 检查一个变量是否为空

如果 变量 是非空或非零的值,则 empty() 返回 false

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

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词,代码如下:

<?php 
    $var = 0; 
     
    // 结果为 true,因为 $var 为空 
    if (emptyempty($var)) {   
        echo &#39;$var is either 0 or not set at all&#39;; 
    } 
     
    // 结果为 false,因为 $var 已设置 
    if (!isset($var)) {  
        echo &#39;$var is not set at all&#39;; 
    } 
?>

实例对比,代码如下:

<?php
$is_var = &#39;&#39;; 
 
if(isset($is_var)) { 
    echo "变量存在!<br />"; 
} else { 
    echo "变量不存在!<br />"; 
} 
 
if(emptyempty($is_var)) { 
    echo "变量为空!<br />"; 
} else { 
    echo "变量不为空!<br />"; 
} 
?>


永久地址:

转载随意~请带上教程地址吧^^

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn