(PHP 4, PHP 5)
extract — 배열의 현재 심볼 테이블로 변수들을 입력한다
이 함수는 배열의 값들을 현재 심볼 테이블에 입력하는데 사용된다. 연관 배열 var_array 를 취해서 변수명을 키로, 변수값을 값으로 취급한다. extract_type 과 prefix 에 따라 각 키/값 쌍에 대해서 현재 심볼 테이블안에 변수를 생성한다.
Note: 버전 4.0.5에 시작하여, 이 함수는 추출된 변수의 수를 반환한다.
Note: EXTR_IF_EXISTS과 EXTR_PREFIX_IF_EXISTS는 버전 4.2.0에서부터 지원된다.
Note: EXTR_REFS 버전 4.3.0부터 지원된다.
extract()는 각 키가 유효한 변수명을 갖을수 있는지 검사 한다. 또한 심볼 테이블에 존재하는 변수들과의 충돌도 검사한다. 유효하지않은/숫자 키와 충돌인 경우를 취급하는 방법은 extract_type 에 의해 결정된다. 다음 값들 중 하나가 될 수 있다:
extract_type 가 설정되지 않으면, EXTR_OVERWRITE가 설정되 있다고 가정한다.
prefix 는 extract_type 이 EXTR_PREFIX_SAME, EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 또는, EXTR_PREFIX_IF_EXISTS 일때만 요구된다. 앞 첨가된 변수가 유효한 변수명이 아니면, 심볼테이블에 입력되지 않는다.
extract()는 심볼 테이블에 성공적으로 입력된 변수의 수를 반환한다.
extract()가 사용가능한 경우는 wddx_deserialize()에서 반환한 연관배열에 포함되어있는 심볼 테이블 변수들 안에 입력하는것이다.
Example#1 extract() 예제코드
<?php
/* Suppose that $var_array is an array returned from
wddx_deserialize */
$size = "large";
$var_array = array ("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract ($var_array, EXTR_PREFIX_SAME, "wddx");
print "$color, $size, $shape, $wddx_size\n";
?>
위 예제코드는 다음을 출력할것이다:
blue, large, sphere, medium
$size는 덮어씌어지지 않았다, 왜냐하면 EXTR_PREFIX_SAME를 설정했기 때문이다. 결과적으로 $wddx_size가 생성되었다. EXTR_SKIP가 설정되어 있으면, EXTR_OVERWRITE 는 $size가 "medium" 값을 갖게 하고 EXTR_PREFIX_ALL는 새로운 변수인 $wddx_color, $wddx_size, $wddx_shape를 갖게한다.
연관 배열을 사용해야 한다. EXTR_PREFIX_ALL 나 EXTR_PREFIX_INVALID를 사용하지 않으면 숫자로 인덱스된 배열은 결과를 도출할수 없다.
compact() 참고.