奥门新浦京官方网站php判断值是否为空实例代码

本文介绍了PHP开发中遇到的数组问题,这里介绍了判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。

php实际应用中一般都是用isset()函数来做判断的。

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

1. isset功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过

注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

<?php
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

示例如下:

 代码如下

2. empty功能:检测变量是否为”空”

说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串”” 或
null的变量、空数组、没有任何属性的对象,都将判断为empty==true

注意1:未初始化的变量也能被empty检测为”空”

注意2:empty只能检测变量,而不能检测语句

<?php
$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 为空' . "";
if (empty($b)) echo '$b 为空' . "";
if (empty($c)) echo '$c 为空' . "";
if (empty($d)) echo '$d 为空' . "";

 代码如下

<?php
        $var = 0; // 结果为 true,因为 $var 为空
        // 结果为 true,因为 $var =0
        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’; } 
?>  

3. var == null功能:判断变量是否为”空”

说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为
null

注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

<?php
$a = 0;
$b = array();
if ($a == null) echo '$a 为空' . "";
if ($b == null) echo '$b 为空' . "";
if ($c == null) echo '$b 为空' . "";
// 显示结果为
// $a 为空
// $b 为空
// Undefined variable: c

if( isset($_GET[’name’]) )//判断传来的值是否为空。 

       echo “值为空”; 

上面的empty与isset判断为没有任何属性的对象都将被认为是空.

4. is_null功能:检测变量是否为”null”

说明:当变量被赋值为”null”时,检测结果为true

注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别

注意2:仅在变量的值为”null”时,检测结果才为true,0、空字符串、false、空数组都检测为false

注意3:变量未初始化时,程序将会报错

<?php
$a = null;
$b = false;
if (is_null($a)) echo '$a 为NULL' . "";
if (is_null($b)) echo '$b 为NULL' . "";
if (is_null($c)) echo '$c 为NULL' . "";
// 显示结果为
// $a 为NULL
// Undefined variable: c

使用说明:

 var == null

5. var === null功能:检测变量是否为”null”,同时变量的类型也必须是”null”

说明:当变量被赋值为”null”时,同时变量的类型也是”null”时,检测结果为true

注意1:在判断为”null”上,全等于和is_null的作用相同

注意2:变量未初始化时,程序将会报错

1、空值、0、false的赋值结果均被isset判为 TRUE
2、NULL将被isset判为 FALSE 
3、isset()同样适用于数组元素和对象元素的检查。若数组或对象实例未被定义,则检测其中的数组元素/对象元素将被返回false。

功能:判断变量是否为“空”
说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为
null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

总结:

PHP中,”NULL” 和 “空” 是2个概念。

isset 主要用来判断变量是否被初始化过

empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE

is_null 仅把值为 “NULL” 的变量判断为TRUE

var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE

var === null 仅把值为 “NULL” 的变量判断为TRUE

注意:在判断一个变量是否真正为”NULL”时,大多使用
is_null,从而避免”false”、”0″等值的干扰。

empty功能:检测变量是否为“空”

 

很简单的,给一个例子。
方法一:

 代码如下

 

$a = 0;
$b = array();
if ($a == null) echo ‘$a 为空’ . “”;
if ($b == null) echo ‘$b 为空’ . “”;
if ($c == null) echo ‘$b 为空’ . “”;
// 显示结果为
// $a 为空
// $b 为空

 代码如下

// Undefined variable: c

$sql = “select * form abc”
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if(empty($row))//开始判断是够为空
{
echo “null”;
}
else
{
echo “not null”;
}

is_null

方法二:

 代码如下

 代码如下

$a = null;
$b = false;
if (is_null($a)) echo ‘$a 为NULL’ . “”;
if (is_null($b)) echo ‘$b 为NULL’ . “”;
if (is_null($c)) echo ‘$c 为NULL’ . “”;
// 显示结果为
// $a 为NULL

$sql = “select * form abc”
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if(!$row)//开始判断是够为空
{
echo “null”;
}
else
{
echo “not null”;
}

// Undefined variable: c

其实mysql_fetch_array函数在使用的时候如果表是空表的话,就会返回false,这个时候$row自然没有赋

变量==0 或 变量===0

说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为
null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

 

 代码如下

 代码如下

$a ===0  $a ===””
$a ==0 等于 $a ==””

$a = 0;
$b = array();
if ($a == null) echo ‘$a 为空’ . “”;
if ($b == null) echo ‘$b 为空’ . “”;
if ($c == null) echo ‘$b 为空’ . “”;
// 显示结果为
// $a 为空
// $b 为空
// Undefined variable: c

在php url传参数时

  1. is_null功能:检测变量是否为“null”
    说明:当变量被赋值为“null”时,检测结果为true
    注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别
    注意2:仅在变量的值为“null”时,检测结果才为true,0、空字符串、false、空数组都检测为false
    注意3:变量未初始化时,程序将会报错

php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:

 

 代码如下

 代码如下

if(empty($id)) $id=1; // 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; // 若 id=0 ,id 不会为1 
可分开运行以下代码检测上述推断:

$a = null;
$b = false;
if (is_null($a)) echo ‘$a 为NULL’ . “”;
if (is_null($b)) echo ‘$b 为NULL’ . “”;
if (is_null($c)) echo ‘$c 为NULL’ . “”;
// 显示结果为
// $a 为NULL
// Undefined variable: c

if(empty($id)) $id=1;
   print $id; // 得到 1 
if(!isset($id)) $id=1;
   print $id; //得到 0 

总结

在php中NULL与空是两种不同的概念,

isset  主要用来判断变量是否被初始化过
empty  可以将值为 “假”、“空”、“0”、“NULL”、“未初始化”
的变量都判断为TRUE
is_null  仅把值为 “NULL” 的变量判断为TRUE
var == null  把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE
var === null  仅把值为 “NULL” 的变量判断为TRUE

其它一些可能用到php变量判断的函数

isset($ var) : //变量是不是已经声明

empty($ var): //变量是不是为空

defined($ var): //常量是不是已经定义 define()

is_array($ var): //检验测定变量是不是是数组

is_null($ var): //检验测定变量是不是为 null

发表评论

电子邮件地址不会被公开。 必填项已用*标注