EXTRACT函数功能比较强大了可以直接把接受到的字符变成变量了,初次知道此函数是一个同事使用这种方法来接受数据了,下面我们来看关于EXTRACT的用法.
PHP extract函数的作用是:函数从数组中把变量导入到当前的符号表中,对于数组中的每个元素,键名用于变量名,键值用于变量值。用extract函数一个技巧是可以把字段变成变量,方便调用.
- $info = $this->db->get_one(array('id'=>$specialid, 'disabled'=>0));
- //将当前专题id所对应的字段作为变量导入到当前的符号表
- extract($info);
本例$info是从数据库查出的结果,以数组的形式作为变量,键名是字段名,值是字段值,使用extract函数就把键名作为变量名,字段值作为变量值了.
比如array(‘name’=>’zhangsan’,’sex’=>’man’,’id’=>3232);
那么extract($array)后,就可以直接使用$name,$sex,$id了.再看如下实例:
- <?php
- $size = "old size"; //注意最后size变量的值。
- $a = array( //开源软件:Vevb.com
- "color" => "red",
- "size" => "XXL",
- "price" => "53");
- extract($a);
- echo "color = $color<br />";
- echo "size = $size<br />";
- echo "price = $price<br />";
- ?>
- 结果为:
- color = red
- size = XXL
- price = 53
通过上例发现$size的值为XXL,而不是之前的”old size”,说明默认情况下当数组中的key与已有的变量冲突时,将覆盖原来的变量.
例子,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'];
- ?>
是不是很方便呢?
extract的作用分析
addslashes -- 使用反斜线引用字符串
extract(addslashes($_POST)); --处理POST表单
把客户端<FORM METHOD="POST"...>表单中的变量名取出来.
extract(addslashes($_GET)); --处理GET表单
把客户端<FORM METHOD="GET"...>表单中的变量名取出来.
新闻热点
疑难解答