PHP EXTRACT函数将字段变成变量的例子

EXTRACT函数功能比较强大了可以直接把接受到的字符变成变量了,初次知道此函数是一个同事使用这种方法来接受数据了,下面我们来看关于EXTRACT的用法.

PHP extract函数的作用是:函数从数组中把变量导入到当前的符号表中,对于数组中的每个元素,键名用于变量名,键值用于变量值。用extract函数一个技巧是可以把字段变成变量,方便调用.

  1. $info = $this->db->get_one(array('id'=>$specialid, 'disabled'=>0));
  2. //将当前专题id所对应的字段作为变量导入到当前的符号表
  3. extract($info);

本例$info是从数据库查出的结果,以数组的形式作为变量,键名是字段名,值是字段值,使用extract函数就把键名作为变量名,字段值作为变量值了.

比如array(‘name’=>’zhangsan’,’sex’=>’man’,’id’=>3232);

那么extract($array)后,就可以直接使用$name,$sex,$id了.再看如下实例:

  1. <?php
  2. $size = "old size"; //注意最后size变量的值。
  3. $a = array( //开源软件:phpfensi.com
  4. "color" => "red",
  5. "size" => "XXL",
  6. "price" => "53");
  7. extract($a);
  8. echo "color = $color<br />";
  9. echo "size = $size<br />";
  10. echo "price = $price<br />";
  11. ?>
  12. 结果为:
  13. color = red
  14. size = XXL
  15. price = 53

通过上例发现$size的值为XXL,而不是之前的”old size”,说明默认情况下当数组中的key与已有的变量冲突时,将覆盖原来的变量.

例子,form.html:

  1. <form action="action.php" method="post">
  2. <input type="text" name="username">
  3. <input type="password" name="password">
  4. <input type="submit">

在action.php中只要使用extract()函数将$_POST全局数据解开 action.php:

  1. <?php
  2. extract($_POST);
  3. //相当于$username = $_POST['username'];
  4. //$password = $_POST['password'];
  5. ?>

是不是很方便呢?

extract的作用分析

addslashes -- 使用反斜线引用字符串

extract(addslashes($_POST)); --处理POST表单

把客户端<FORM METHOD="POST"...>表单中的变量名取出来.

extract(addslashes($_GET)); --处理GET表单

把客户端<FORM METHOD="GET"...>表单中的变量名取出来.