문제

PHP의 추출 기능은 호출 함수의 로컬 범위에 변수를 추가합니다. 우리는 어떻게 동일하게하는 자체 PHP 기능 추출물을 작성할 수 있습니까?

도움이 되었습니까?

해결책

Pure-PHP에서는 그렇게 할 수 있다고 생각하지 않습니다. 함수는 발신자의 변수에 액세스 할 수 없습니다.

이것은 개발을 위해 C 확장을 작성하는 데 필요한 종류의 것 같습니다. PHP 변수의 내부를 더 많이 제어 할 수 있습니다.

(그리고 나는 당신이 왜 그렇게하려고하는지 실제로 알지 못합니다. 기존을 사용하지 않는 이유는 무엇입니까? extract 기능 ? )

다른 팁

PHPJ PHP의 기능과 같은 기능을 포함하는 JavaScript 라이브러리입니다. 발췌 기능에서 아이디어를 얻을 수 있습니다. PHP가 이미 제공 할 때 왜 자신의 기능을 찾고 계십니까?

좋아, 그것이 재미를위한 것이라면 가능합니다.

<?php
$data=array('a' => 1, 'b' => 2);

foreach ($data as $name => $value) {
    ${$name} = $value;
}

echo $a;
?>

그러나 $ 데이터, $ 이름 및 $ 값과의 충돌과 같은 일부 문제는 함수로 래핑 할 수 없습니다. 그러나 가능합니다.

예, 가능합니다.

추출 기능에서 더 많은 것을 필요로하기 때문에 값을 다듬어야하는 이유

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}

나는 단지 내 $ _get, $ _post를 pas로 pas 그리고 eg $ _get [ 'username'] = 'justnajm'; extractArray ($ _ get);

그리고 난 그냥 반향 할 수 있고 'Justnajm'을 인쇄 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top