加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中extract函数各种用法详解

发布时间:2022-06-18 15:44:18 所属栏目:PHP教程 来源:互联网
导读:本文章详细的介绍了关于PHP中extract函数各种用法介绍,从把数据变成变量,post,get数据处理等有需要的同学可参考一下. 直接上代码,代码如下: ?php $my_array = array(a = Cat,b = Dog, c = Horse); extract($my_array); echo $a = $a; $b = $b; $c = $c; ? //
  本文章详细的介绍了关于PHP中extract函数各种用法介绍,从把数据变成变量,post,get数据处理等有需要的同学可参考一下.
 
  直接上代码,代码如下:
 
  <?php
  $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
  extract($my_array);
  echo "$a = $a; $b = $b; $c = $c";
  ?>  
  //输出:$a = Cat; $b = Dog; $c = Horse  
  没有定义变量$a $b $c,也没有赋值,为什么就可以可以获取值了?
 
  比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不能不用一一赋值,直接使用下面代码.
 
  form.html,代码如下:
 
   <form action="action.php" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit">
  在action.php中只要使用extract()函数将$_POST全局数据解开.
 
  action.php代码如下:
 
  <?php
  extract($_POST);
  //相当于$username = $_POST['username'];
  //$password = $_POST['password'];
  ?>
  数组操作相关例子,代码如下:
 
  <?php
  /* 假定 $var_array 是 wddx_deserialize 返回的数组*/
  $size = "large";
  $var_array = array("color" => "blue",
  "size" => "medium",
  "shape" => "sphere");
  extract($var_array, EXTR_PREFIX_SAME, "wddx");
  echo "$color, $size, $shape, $wddx_sizen";
  ?>
  //上例将输出:blue, large, sphere, medium
  $size 没有被覆盖,因为指定了 EXTR_PREFIX_SAME,这使得 $wddx_size 被建立,如果指定了 EXTR_SKIP,则 $wddx_size 也不会被建立,EXTR_OVERWRITE 将使 $size 的值为“medium”,EXTR_PREFIX_ALL 将建立新变量 $wddx_color,$wddx_size 和 $wddx_shape.
 
  数组2
 
  1.适用范围:非数字索引的数组,数组中有键值对;
 
  2.函数创建的变量名是数组中的关键字,变量的值是数组中对应的值;
 
  3.两个可选参数:extract_type和prefix;
 
  其中extract_type指定处理变量名冲突的方法,默认是EXTR_OVERWRITE,表示覆盖已有的变量,当extract_type的值为EXTR_PREFIX_ALL时,给所有创建的变量前加上前缀,前缀为prefix参数提供;
 
  4.数组中元素的关键字必须是有效的变量名,否则将被跳过.
 
  实例,array_extract.php,代码如下:
 
  <html>
      <head>
          <title>Test Array Extract</title>
      </head>
      <body>
          <?php
              $array = array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
              extract($array);
              echo 'Default:<br />';
              echo "$key1 $key2 $key3<br />";
               
              //发生冲突时跳过一个元素
              $key1 = "abc";
              extract($array, EXTR_SKIP);
              echo 'Skip:<br />';
              echo "$key1 $key2 $key3<br />";
   
              //在所有变量名前加上由prefix参数提供的值
              extract($array, EXTR_PREFIX_ALL, 'my');
              echo 'Prefix_All:<br />';
              echo "$my_key1 $my_key2 $my_key3<br />";
          ?>
      </body>
  </html>
  是不是很方便呢?
 
 

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读