extract
extract
함수는 연관 배열의 키와 값을 변수로 추출합니다.
<?php
$array = ["name" => "John", "age" => 25, "country" => "USA"];
extract($array);
echo $name; // 출력: John
echo $age; // 출력: 25
echo $country; // 출력: USA
?>
위의 예제에서 extract
함수는 $array
의 키인 "name"
, "age"
, "country"
와 해당 값들을 변수로 추출합니다. 결과적으로 변수 $name
, $age
, $country
에는 각각 연관 배열의 값이 할당되어 출력됩니다.
함수 사용 시 기본 전달 파라미터 설명과 코드
extract
함수의 기본 전달 파라미터는 연관 배열입니다. 함수는 연관 배열의 키와 값을 변수로 추출합니다.
다른 함수와 함께 응용하는 코드
<?php
$array = ["name" => "John", "age" => 25, "country" => "USA"];
// extract 함수와 array_keys 함수 함께 사용하기
$keys = array_keys($array);
extract($array, EXTR_PREFIX_SAME, "prefix");
echo $name; // 출력: John
echo $age; // 출력: 25
echo $country; // 출력: USA
echo $prefix_0; // 출력: name
echo $prefix_1; // 출력: age
echo $prefix_2; // 출력: country
?>
위의 예제에서는 array_keys
함수를 사용하여 연관 배열의 키를 추출한 후, extract
함수와 함께 사용합니다. EXTR_PREFIX_SAME
플래그를 전달하여 중복되는 변수명의 경우 변수 앞에 접두사를 붙이도록 설정하였습니다. 결과적으로 키와 값이 변수로 추출되며, 중복 변수의 경우 prefix_
라는 접두사가 붙은 변수도 생성됩니다.
조건문과 반복문과 함께 사용하는 샘플 코드
<?php
$array = ["name" => "John", "age" => 25, "country" => "USA"];
// 추출된 변수를 조건문에서 사용하기
extract($array);
if ($age >= 18) {
echo "$name is an adult.";
} else {
echo "$name is a minor.";
}
// 추출된 변수를 반복문에서 사용하기
foreach ($array as $key => $value) {
echo "$key: $value\n";
}
?>
위의 예제에서는 extract
함수를 사용하여 연관 배열의 키와 값들을 변수로 추출한 후, 조건문과 반복문에서 해당 변수들을 사용합니다. 조건문에서는 추출된 $age
변수를 이용하여 성인 여부를 판별하고, 반복문에서는 추출된 변수들을 순회하여 키와 값의 쌍을 출력합니다.
성능 향상을 위한 팁
extract
함수는 배열의 키와 값을 변수로 추출하는 작업을 수행하므로, 추출된 변수들이 중복되는 경우 예기치 않은 결과를 초래할 수 있습니다. 따라서 추출된 변수들의 네이밍 충돌을 방지하기 위해EXTR_PREFIX_*
플래그를 사용하거나, 특정 범위에서만 변수 추출을 수행하는 것이 좋습니다.- 변수의 충돌을 피하기 위해 추출 범위를 지정할 수 있습니다.
extract
함수의 두 번째 인자로 추출 범위를 지정하는데,EXTR_PREFIX_SAME
플래그를 사용하면 중복 변수의 경우 접두사를 붙일 수 있습니다. 또한,EXTR_IF_EXISTS
플래그를 사용하면 이미 존재하는 변수만 추출할 수 있습니다.