php中isset()函数变量判断实例

isset函数是检测变量是否设置。

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数。

获取用户属性时有的用户能,有的用户不能,同样的逻辑为什么不能经检查使用了类似这样的代码

 代码如下 复制代码

$userInfo=’abc’;
if(isset($userInfo['account'])) {
$account=$userInfo['account'];
} else {
$account=$userInfo;
}

发现$account得到的是空,查了一些资料也没得到结果
做了一个实验得到了结论

 代码如下 复制代码

$a=’abc’;
echo $a['account'];

结果是a

当是字符串key没有时,它会转化成数字key,是0,所以得到了a
现在php5.4已经修复

趁这机会,整理了一下isset的用法,供大家借鉴

 代码如下 复制代码

<?php

$var = '';

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

?>

 

键 ‘b’ 的值等于 NULL,所以被认为是未置值的。
但是键’c'的值是空结果是true,空值是代表 有设置的 如果想检测 NULL 键值,可以试试下边的方法。

 代码如下 复制代码

var_dump( array_key_exists(‘hello’, $a) ); // TRUE

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

一些应用中实例

PHP isset()对PHP参数判断您可以使用 PHP isset() 来判断一个参数是否被定义,注意如果该参数为空,或者"n"(NULL字节)使用 PHP isset() 判断之后,都会为TRUE。

 代码如下 复制代码

<?php
$weigeti=''; //这里初始参数$weigeti='';
$weigeti0=FALSE //这里初始参数为布尔FALSE
$weigeti2=NULL;  //这里定义$weigeti2=NULL,用isset()判断返回FALSE
$weigeti3=""; // 这里是NULL字节,用isset()判断,返回TRUE,不同于NULL常数
$weigeti4="www.v-get.com";  //这里定义会在下面给unset掉

if(isset($weigeti)){ echo '参数$weigeti已经设定,且值不为NULL'; }
// 参数$weigeti已经赋值,而且值为$weigeti='',所以会输出“参数$weigeti已经设定”

if(isset($weigeti0)){ echo '参数$weigeti0已经设定,且值不为NULL'; }
// 参数$weigeti0已经赋值,而且值为$weigeti=FALSE,所以会输出“参数$weigeti已经设定”

if(isset($vget)){ echo '参数$vget已经设定,且值不为NULL'; }
// 参数$vget根本就没有被提及过,isset($vget)返回FALSE,不会输出

if(isset($weigeti2)){ echo '参数$weigeti2已经设定,且值不为NULL'; }
// 这里是$weigeti2虽然被设定了,但是$weigeti2=NULL,所以isset($weigeti2)返回FALSE,不会输出

if(isset($weigeti3)){ echo '参数$weigeti3已经设定,且值不为NULL'; }
// 参数$weigeti3 虽然 就是代表NULL字节,但是这个不是常数NULL,所以$isset("")返回TRUE,会输出

unset($weigeti4);  //这里给$weigeti4 释放掉了
if(isset($weigeti4)){ echo '参数$weigeti4已经设定,且值不为NULL'; }
// 虽然开始已经定义$weigeti4,而且还不为NULL,但是后来又给 unset() 掉了,所以不会输出。
?>

PHP isset() 对数组的判断在使用PHP数组的时候,需要判断数组的某个值是否存在也可以使用 PHP isset() 函数。

 代码如下 复制代码

<?php
$V=array(
'WeiGeTi'=>'www.111cn.net',
'V-Get'=>array(
    'www'=>'www.v-get.com',
    'e'=>'e.v-get.com',
    'wuliu'=>array(
        'www'=>'wuliu.v-get.com',
        'yiwu'=>'www.111cn.net'
     )
   )
);

// var_dump用于输出TRUE 或 FALSE

var_dump(isset($V['WeiGeTi']));
// 数组$V 的$V['WeiGeTi'] ='www.111cn.net'已经存在,所以输出TRUE

var_dump(isset($V['V-Get']['e']));
//$V['V-Get']['e']='e.v-get.com' 所以输出 TRUE

var_dump(isset($V['V-Get']['wuliu']['yiwu']));
// $V['V-Get']['wuliu']['yiwu']='www.111cn.net'所以输出TRUE

var_dump(isset($V['V-Get']['wuliu']['sh']));
//根据数组,根本就没有设定该项,所以输出FALSE
?>

PHP isset()多参数判断很多时候我们需要对多个参数进行判断,可以使用isset($A)&&isset($B)……来判断这些参数是不是都已经设定了,而且都不为NULL,对此您可以使用isset()多参数来判断是不是都设定了。

 代码如下 复制代码
<?php
isset($v1)&&isset($v2)&&isset($v3)……
等价于
isset($v1,$v2,$v3……)
?>

使用isset()判断多个参数,需要所有参数都被设定,且不为NULL,只要其中有一个参数没有被设定过,或者为NULL,那么整个isset()就为FALSE。

PHP isset()判断$_POST、$_GET、$_REQUEST等值。用isset() 或者empty() 判断通过表单传递来的参数是isset() 最常见的用法。

 代码如下 复制代码
if(isset($_POST['from'])&&'E.V-Get.com'==$_POST['from']){
echo '网站通过POST传递的来源是E.V-Get.com';
}

根据上面我们可以用isset判断多参数,在对表单传递来的值进行判断就最方便了。

 代码如下 复制代码

<?php
//表单传递来user用户名和 pass必须同时存在才能执行
if(isset($_POST['user'],$_POST['pass'])){
$user=$_POST['user'];
$pass=$_POST['pass'];
echo '您填写的用户名是:',$user,';密码是:',$pass;

}
?>

PHP isset($var{字符串长度}) 判断字符串长度用PHP判断字符串是否存在或者判断字符串长度是否超过某一数字或者判断字符串长度是否为空一般使用strlen(),但是其实使用isset()性能更优越。

 代码如下 复制代码

<?php
//三元,等同于 if(isset($_POST['from'])){$weigeti=$_POST['from'];}else{$weiget='';}

$weigeti=isset($_POST['from'])?$_POST['from']:'';

//判断$weigeti存在,且字符串长度大于0
/* 菜鸟写法 
if(strlen($weigeti)>0){
echo '$weigeti子符长度大于0';}
*/

// 性能更优越的写法,判断$weigeti第1个字符是否设定了
if(isset($weigeti{1})){
echo '$weigeti字符长度大于0';
}
?>

时间: 2024-10-28 00:30:02

php中isset()函数变量判断实例的相关文章

Sql Server中Substring函数的用法实例解析_MsSql

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

Sql Server中Substring函数的用法实例解析

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

PowerShell中的$Input变量使用实例_PowerShell

本文介绍在自定义PowerShell函数时,有一个$Input变量,这是一个系统自带的变量,它表示以块结构输入的管道数据. 先看看这个$Input变量在函数中是如何使用的. 复制代码 代码如下: function Test-Pipeline {     $pipelineData = @($Input)     $Count = $pipelineData.Count     "Received $Count elements: $pipelineData" } 运行结果如下: 复制代

Python中apply函数的用法实例教程_python

一.概述: python apply函数的具体含义如下:  apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数.args是一个包含将要提供给函数的按位置传递的参数的元组.如果省略了args,任何参数都不会被传递,kwargs是一个包含关键字参数的字典.   apply()的返回值就是func()的返回值,apply()的元素参数是有序的,元素的顺序必须和func()形式参数的顺序一致 二.使用示例: 下面给几个例子来详

WordPress中is_singular()函数简介_php实例

函数is_singular()检测结果为true,当下面其一返回true时:is_single().is_page().is_attachment(). 如果指定了$post_types时,还要检测是否是该类型. 函数原型 复制代码 代码如下: is_singular( $post_types = '' ); 参数详解 $post_types,Post type或者在当前query中的类型. 返回值 检测成功返回true,否则返回false. 应用实例 在singular页面下显示不一样的广告:

php中闭包函数的用法实例

php闭包函数比如你现在就可以这样使用:  代码如下 复制代码 $closure = function($param) { echo $param; }; 感觉和js是不是一样的用法了. 一些闭包函数实例  代码如下 复制代码 function test(){ $test=''; $test=function ($str){ echo 'test'; return $str; }; timeout('Y-m-d H:i:s',function ($time){ //$this->date=tim

javascript中bind函数的作用实例介绍_javascript技巧

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> button {background-color:#0f0;} </style> </head> <body> <button id="button"> 按钮 </button> <input type="tex

jQuery中toggle()函数的使用实例_jquery

今天遇到一个有趣的例子,将它记录下来. 一个一级菜单,里边有一个二级菜单,二级菜单是通过锚点来链接页面元素的.想要实现的效果是当点击锚点时,页面链接到相应锚点,同时二级菜单隐藏,再点击一级菜单时,继续执行.. 其中试了很多种方法都不行,最后通过读jquery的toggle函数实现了. //这样写可以 $(".nav").toggle(function(){ $(".content").slideToggle(); }); //这样写不可以 $(".nav&

ThinkPHP模板之变量输出、自定义函数与判断语句用法_php实例

本文实例讲述了ThinkPHP模板之变量输出.自定义函数与判断语句用法.主要包括变量输出.自定义函数与判断语句三种用法.分享给大家供大家参考.具体分析如下: 模板操作变量输出: 快捷输出变量 复制代码 代码如下: {:function(-)} //执行方法并输出返回值 {~function} //执行方法不输出 {@var} //输出Session变量 {#var} //输出Cookie变量 {&var} //输出配置参数  {%var} //输出语言变量 {.var} //输出GET变量 {^