unset() isset() empty difined()操作变量详解

isset()函数 一般用来检测变量是否设置 
格式:bool isset ( mixed var [, mixed var [, ...]] )  功能:检测变量是否设置 

返回值: 
  若变量不存在则返回 FALSE 
  若变量存在且其值为NULL,也返回 FALSE 

  若变量存在且值不为NULL,则返回 TURE 
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE 

$int='null';
$str=12;
if(isset($int,$str)){  //返回true

echo '123'.' ';
};

更多说明: 

  使用 unset() 释放变量之后,将销毁变量,所以它将不再是 isset(),不可再用此函数判断。 
  注意:PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。 

empty()函数 判断值为否为空 


格式:bool empty ( mixed var )   功能:检查一个变量是否为空 

返回值: 
  若变量不存在则返回 TRUE 
  若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE 
  若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE 

defined("CHR");   检测常量是否已设置可使用 defined() 函数。判断常量是否存在

<?php
define("GREETING","Hello world!");  //定义常量 使用常量时不用加 $
echo defined("GREETING");
?>

unset() 销毁指定的变量。

1.如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

 

<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

 

  以上例程会输出:bar

如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:

<?php
function foo() 
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

 2.如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。 

 

<?php
function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

  

以上例程会输出:

  something

  something

3.如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Before unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "after unset: $bar\n";
}

foo();
foo();
foo();
?>

  

以上例程会输出:

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23



posted @ 2014-09-25 11:35  ITCHN  阅读(558)  评论(0编辑  收藏  举报