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"...>表單中的變量名取出來.
新聞熱點
疑難解答