Empty(PHP 4,PHP 5)决定一个变量是否为空;bool empty(mixed $var)
Empty()只能检测变量,因为其他任何东西都会造成语法上的错误。也就是说,像如下的写法是不正确的:empty(trim($name))。
Empty()和(boolean)var是相对的,除了当变量没有设置时不生成警告。
返回值:当var有一个非空和非零值的时候返回false。如下的例子被认为是空的(empty):
“”(空字符串),0(作为integer或者作为string),NULL,False,array()(空数组),var $var();(声明了但未赋值的变量)
<?php
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>
Isset(php 4,PHP 5)判断一个变量是设置和非NULL
Bool isset(mixed $var [,mixed $var[,$...]])
如果一个变量已经用unset()处理过,他将不能被set。如果一个变量已经被设置为NULL,Isset()将返回FALSE。要注意的是,NULL字节(”/0”)和PHP中的NULL常量是不相等的。当有多个参数时,只有所有的参数都设有值的情况下isset()才返回TRUE。
返回值:当var存在并且有值,除了NULL,FALSE以外的值返回TRUE。
Isset()仅用于变量,传递的其他参数都将造成语法错误,因为检查常量一般使用defined()函数。由于这是一种构造语言并不是一个函数,它不能调用可变函数。
<?php
$var = '';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
// In the next examples we'll use var_dump to output
// the return value of 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
// The key 'hello' equals NULL so is considered unset
// If you want to check for NULL key values then try:
var_dump(array_key_exists('hello', $a)); // TRUE
?>