정의 및 사용법
PHP extract() 함수는 배열의 변수를 현재 기호 테이블로 가져옵니다.
배열의 각 요소에 대해 키는 변수 이름으로 사용되고 키는 변수 값으로 사용됩니다.
두 번째 매개변수 유형은 변수가 이미 존재하고 배열에 동일한 이름을 가진 요소가 있는 경우 extract() 함수가 이러한 충돌을 처리하는 방법을 지정하는 데 사용됩니다.
성공적으로 설정된 변수의 개수를 반환하는 함수입니다.
구문
extract(array,extract_rules,prefix)
매개변수 설명
배열 필수입니다. 사용할 입력을 지정합니다.
extract_rules
선택 사항. extract() 함수는 각 키 이름이 유효한 변수 이름인지 확인하고, 기호 테이블의 변수 이름과 충돌하는지 확인합니다.
불법, 숫자, 충돌하는 키 이름의 처리는 이 매개변수에 따라 결정됩니다. 다음 값 중 하나일 수 있습니다.
가능한 값:
EXTR_OVERWRITE - 기본값. 충돌이 있는 경우 기존 변수를 덮어씁니다.
EXTR_SKIP - 충돌이 있는 경우 기존 변수를 덮어쓰지 마십시오. (배열에서 이름이 같은 요소는 무시합니다.)
EXTR_PREFIX_SAME - 충돌이 있는 경우 변수 이름 앞에 접두사를 붙입니다. PHP 4.0.5부터 여기에는 숫자 인덱스 처리도 포함됩니다.
EXTR_PREFIX_ALL - 모든 변수 이름 앞에 접두사(세 번째 매개변수)를 붙입니다.
EXTR_PREFIX_INVALID - 접두사가 있는 잘못된 변수 또는 숫자 변수 이름에만 접두사를 붙입니다. 이 태그는 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_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID 또는 EXTR_PREFIX_IF_EXISTS인 경우에만 필요합니다. 접두어를 붙인 후의 결과가 합법적인 변수 이름이 아닌 경우 기호 테이블로 가져오지 않습니다.
접두사와 배열 키 이름 사이에 밑줄이 자동으로 추가됩니다.
예제 1
$a = 'Original';
$my_array = array("a " => "고양이","b" => "개", "c" => "말");
extract($my_array);
echo "$a = $a; b = $b; $c = $c";
?>
출력:
$a = 고양이; $b = 개; $c = 말
예 2
모든 매개변수 사용:
$a = 'Original';
$my_array = array("a " => "고양이","b" => "개", "c" => "말");
extract($my_array, EXTR_PREFIX_SAME, 'dup');
echo "$a = $a; $b = $b; $c = $c; $dup_a = $dup_a;";
?>
출력:
$a = 원본; $c = 말; $dup_a = 고양이;