正在加载中...
php语言中isset()和unset()函数究竟有返回值吗?取值为何报错?
isset是PHP 3, PHP 4, PHP 5 中常用变量检测语句,unset()则是变量销毁语句,他们的使用有什么特点,是否有返回值?万维景盛工程师为您澄清。
isset -- 检测变量是否设置,如果 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 ?>
注: 由于这是一个语言结构而非函数,因此它无法被“变量函数”调用。
合理应用PHP函数isset()可以帮助我们是检测变量是否设置。若果变量不存在则返回 FALSE,而如果变量存在且值不为NULL,则返回 TURE。
通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言。庞大的函数库支持着PHP语言功能的实现。下面我们为大家介绍有关PHP函数isset()的相关用法。
格式:bool isset ( mixed var [, mixed var [, ...]] )
功能:检测变量是否设置
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
版本:PHP 3, PHP 4, PHP 5
更多说明:
使用 unset() 释放变量之后,它将不再是 isset()。
PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。
检测常量是否已设置可使用 defined() 函数。
unset()
销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。