extract -- 從
數組中將變量導入到當前的符號表
說明int extract ( array var_array [, int extract_type [, string prefix]] )
extract() 檢查每個鍵名看是否可以作為一個合法的變量名,同時也檢查和符號表中已有的變量名的沖突。對待非法/數字和沖突的鍵名的方法將根據 extract_type 參數決定。可以是以下值之一:
EXTR_OVERWRITE
如果有沖突,覆蓋已有的變量。
EXTR_SK
IP如果有沖突,不覆蓋已有的變量。
EXTR_PREFIX_SAME
如果有沖突,在變量名前加上前綴 prefix。
EXTR_PREFIX_ALL
給所有變量名加上前綴 prefix。自 PHP 4.0.5 起這也包括了對數字
索引的處理。
EXTR_PREFIX_INVALID
僅在非法/數字的變量名前加上前綴 prefix。本標記是 PHP 4.0.5 新加的。
EXTR_IF_EXISTS
僅在當前符號表中已有同名變量時,覆蓋它們的值。其它的都不處理。可以用在已經定義了一組合法的變量,然後要從一個數組例如 $_REQUEST 中提取值覆蓋這些變量的場合。本標記是 PHP 4.2.0 新加的。
EXTR_PREFIX_IF_EXISTS
僅在當前符號表中已有同名變量時,建立附加了前綴的變量名,其它的都不處理。本標記是 PHP 4.2.0 新加的。
EXTR_REFS
將變量作為引用提取。這有力地表明了導入的變量仍然引用了 var_array 參數的值。可以單獨使用這個標志或者在 extract_type 中用 OR 與其它任何標志結合使用。本標記是 PHP 4.3.0 新加的。
如果沒有指定 extract_type,則被假定為 EXTR_OVERWRITE。
注意 prefix 僅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 時需要。如果附加了前綴後的結果不是合法的變量名,將不會導入到符號表中。
在獲取表單的時候可以使用他,方便快捷。
extract($_
GET);//$_GET['name'] $_GET['age']
//將會的到變量 $name $age
同理$_
POST也可以
extract($_POST);
但要注意的是extract前或後面相同變量名會被覆蓋的問題,那麼你就使用加上使用前綴參數EXTR_PREFIX_SAME
例如:
extract($_GET,EXTR_PREFIX_SAME,"get");//$_GET['name'] $_GET['age']
//結果: $get_name,$get_age