• 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.  }  
  • 相关阅读:
    让开发效率“飞起”的VS Code 插件
    转-webpack学习笔记--整体配置结构
    十二、vue中watch原理
    十一、vue生命周期诠释--带图
    十、vue mixins 的用法
    八、Web移动端Fixed布局的解决方案
    七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面
    六、vue如何缓存页面
    五、vue常用UI组件
    vue组件递归
  • 原文地址:https://www.cnblogs.com/vspiders/p/7410520.html
Copyright © 2020-2023  润新知