zoukankan      html  css  js  c++  java
  • 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
    ";
    
    foo($bar);
    echo "$bar
    ";
    ?>
    

      

    以上例程会输出:

      something

      something

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

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

      

    以上例程会输出:

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



  • 相关阅读:
    eclipse中文乱码问题解决方案
    修改Tomcat的JDK目录
    Tomcat 5.5 修改服务器的侦听端口
    HTML DOM教程 27HTML DOM Button 对象
    HTML DOM教程 24HTML DOM Frameset 对象
    Navicat for MySQL v8.0.27 的注册码
    HTML DOM教程 25HTML DOM IFrame 对象
    Tomcat 5.5 的下载和安装
    android manifest相关属性
    ubuntu10.04 下 eclipse 小结
  • 原文地址:https://www.cnblogs.com/jiechn/p/3992408.html
Copyright © 2011-2022 走看看