zoukankan      html  css  js  c++  java
  • PHP中$$的应用

    PHP中$表示一个变量的声明,$value='test';表示变量value的值是test。

    而$$则好像是C语言中的指针,它指向一个变量值的一个变量。

    例如:$$value='a';这句话的意思就是首先取$value变量的值,为test,然后再将其值变成一个变量即表示为$test='a';

    [php] view plain copy
    1. <?php  
    2.     $value='test';  
    3.     $test='a';  
    4.     echo $$value;  
    5. ?>  
    6. <?php  
    7.     $value='test';  
    8.     $$value='a';  
    9.     echo $test;  
    10.  ?>  
    两个代码输出的值都是a。

    这里举个很经典的例子作为他的应用:

    我们经常会遇到通过HTTP GET请求和POST请求等提交很多参数,如下代码:

    [php] view plain copy
    1. <?php  
    2. $action=$_GET[action];  
    3. $mid=$_GET[mid];  
    4. $keywords=$_GET[keywords];  
    5. if($action=='list'){  
    6.     echo "list";  
    7.  }  
    8. if($mid=='1'){  
    9.     echo "mid";  
    10.  }  
    11. if($keywords=='search'){  
    12.     echo "keywords";  
    13.  }  
    14.  ?>  

    我们想要从GET请求中获取变量action、mid、keywords的值,那么就需要分别建立三个赋值函数,从GET请求中获取出来,这样写起来非常的麻烦,而且不适合日后的扩展操作,这是我们引用$$魔法变量便可轻松的解决此问题,代码如下:

    [php] view plain copy
    1. foreach ($_GET as $_key=>$_value){  
    2.     $$_key=$_value;  
    3.  }  

    这里就是首先吧$_GET请求变量以数组的形式赋值给$_key:$_value,比如我们提交url为?action=list,那么$_key的值就是action,$_value的值便是list,紧接着我们就使用魔法变量$$_key即变成$action的值为$_value即list,这样就将值list赋值给了变量$action,同样不管我们提交什么请求,他都能进行变量赋值操作,当然常规的写法还有很多种,如下:

    [php] view plain copy
    1. foreach ($_GET as $_key=>$_value){  
    2.     $$_key=$_GET[$_key];  
    3.  }  
  • 相关阅读:
    [年报阅读] 中国银行业监督管理委员会2009年报(1)
    囧事
    [论文收集] 2009年|国内计算机方向三大学报|Web Service相关论文
    打开那扇窗
    初生牛犊不怕虎
    忘却的纪念
    Java JDBC学习
    Java数组学习
    如何清晰地思考:近一年来业余阅读的关于思维方面的知识结构整理(附大幅思维导图)
    管理类文件
  • 原文地址:https://www.cnblogs.com/vspiders/p/7410520.html
Copyright © 2011-2022 走看看