函式名稱: extract()
適用版本: 所有版本的 PHP
函式用法: extract() 函式可以將關聯陣列中的鍵值對,轉化為變數和變數值。陣列的鍵名將成為變數名,陣列的鍵值將成為變數的值。這意味著,可以透過變數名直接訪問原始陣列中的值。
函式示例:
<?php
$details = array(
'name' => 'John',
'age' => 25,
'country' => 'US'
);
extract($details);
echo $name; // 輸出:John
echo $age; // 輸出:25
echo $country; // 輸出:US
?>
在這個示例中,extract() 函式將 $details
陣列轉化為變數和變數值,並且可以直接使用這些變數來訪問陣列元素的值。
此外,extract() 函式還有一個可選的引數,用於指定變數的作用域。預設情況下,提取後的變數將在當前的符號表中生效。
<?php
$details = array(
'name' => 'John',
'age' => 25,
'country' => 'US'
);
function getDetails() {
$details = array(
'name' => 'Jane',
'age' => 30,
'country' => 'UK'
);
extract($details, EXTR_PREFIX_ALL, "user");
echo $user_name; // 輸出:Jane
echo $user_age; // 輸出:30
echo $user_country; // 輸出:UK
}
getDetails();
echo $name; // 輸出:John
echo $age; // 輸出:25
echo $country; // 輸出:US
?>
在這個示例中,使用 EXTR_PREFIX_ALL
引數將提取後的變數名加上字首 "user_",以避免變數名衝突。extract()
函式在函式內部執行後,不會影響函式外部的同名變數。