12 12
发新话题
打印

isset(),empty()用法(07/4/8)

isset(),empty()用法(07/4/8)

isset(),empty()这两个个很容易被忽略的!经常会遇到什么未定义变量的报错,你知道该用哪个来避免这个错误吗
嘿嘿,今天身体有点不舒服,睡了将近一天,只能晚上补上了,不好意思。
等我挣了100万我就找个人娶了!哈哈!

TOP

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

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


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

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。
复制内容到剪贴板
代码:
例子 1. 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))。
等我挣了100万我就找个人娶了!哈哈!

TOP

顶一下,我是用isset()来避免变量未定义的warning

TOP

学习学习~~~~~  星期日偶休息~`````
*********************************
天地自在,任我逍遥
http://www.dophp.net/
dophp@qq.com
**********************************

TOP

顶,好贴好解释,这两个是很容易混淆

TOP

辛苦了 ,要注意身體啊
我,我,我 .............

TOP

顶,好贴好解释,终于懂了,谢了

TOP

顶顶顶,嘻嘻!!!学习喽
大家努力,把论坛发展起来!!!!!!!!

TOP

isset()和empty()的区别

两者都是测试变量用的,但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空。
  
    如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示,如果一个变量被赋空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。
   
    要注销一个变量,可以用 unset($foo)或者$foo=NULL

TOP

顶,真是辛苦你了。注意身体啊 不然我们就没的看了

TOP

 12 12
发新话题