저는 여러 변수를 호출하는 함수가 있으며 다른 (동적으로 생성 된) 반환 변수를 생성합니다. 좋다.PHP에서 동적으로 생성 된 변수는 종종 변수 이름 대신 "_GET"또는 "_POST"와 같은 이름을 생성합니다.
Moneysystem: 666
Moneypenny : 007
이 잘 대부분의 시간을 작동하지만, 때로는 $ James_Bond 같은 만 대신 변수 이름 내가 얻을 :
function showArrayIntersection($ar1, $ar2) {
$dynamicName = array_search($ar1, $GLOBALS) . '_' . array_search($ar2, $GLOBALS);
global ${$dynamicName};
${$dynamicName} = implode(array_values(array_intersect($ar1, $ar2)));
}
$Bankers = [6,7,0,6,5,6,2]; // `[]` is equivalent to `array()` introduced in PHP 5.4
$Bond = [6,7,0,5,0];
$Politicians = [4,6,1,6,4,6,3];
$James = [0,1,0,3,7];
showArrayIntersection($James, $Bond);
showArrayIntersection($Bankers, $Politicians);
echo "Moneysystem: $Bankers_Politicians\n";
echo "Moneypenny : $James_Bond\n";
출력 (I이 PHP 5.3 예를 아래에 내 문제를 설명) POST _POST 또는 같은 변수 이름은 이름 대신 제임스 또는 본드를 의미 _GET을 GET PHP 중 하나는 "_GET을 반환 "또는"_POST ".
AbraCadaver는 "전 세계에서 무엇을하고 있습니까?" 여기 내 해결책과 설명 :
Einacio : 첫 번째 함수에서 동적으로 도착했기 때문에 이름을 만들지 않으므로 실제 변수 이름은 실제 이름이 아닙니다.
그리고 AbraCadaver는 array_search()가 배열을 허용하지 않는다고 지적했습니다. 불행히도 내가 간략하게하기 위해서 나는 배열이 아니라 동적 인 다른 변수를 만든다. 나는 너무 복잡하게 만들고 싶지는 않지만 기본적으로 다음과 같이 동작한다 :
function processUsers ($userName , $request2send){
global ${$user.'_'.$request2send};
$url2send = "http...?request=".$request2send ;
...
$returnedValue = receivedDataArray();//example elvis ([0] => Presley);
${$user.'_'.$request2send} = $returnedValue;
}
로 첫 번째를 필요로하는 두 번째 함수 -
은 --- 지금은 지금은 루트에있는 함수의 값 ---
$firstValue = processUsers ("cuteAnimal" , "getName");
// returns: $cuteAnimal_getName = "Mouse"
및
$secondValue = processUsers ("actorRourke" , "getFirstName");
// returns: $actorRourke_getFirstName = "Mickey";
그리고 이제 안됐다을 얻을완료 : 두 번째 기능은, 훨씬 더 복잡하고 완료 먼저 필요 물론
function combineValues ($firstValue , $secondValue){
global ${$firstValue.'AND'.$secondValue};
${$firstValue.'_'.$secondValue} = $firstValue." ".$secondValue;
}
// returnes $actorRourke_getFirstNameANDcuteAnimal_getName = "Mickey Mouse";
하지만 난 당신이 배열은 내가하지만 동적 변수 이름을 전달하는 직접 아니라는 것을 지금 이해할 수 있기를 바랍니다있는 I "firstValue"로만 사용할 수는 없지만 "actorRourke_getFirstName"이라는 이름이 필요했습니다. 그래서 AbraCadaver가 $ GLOBALS [..]를 사용하기 위해서는 어레이가 필요하기 때문에 나에게 도움이되지 못했습니다.
그러나 귀하의 모든 도움에 감사 드리며 문제를 설명해 드릴 수 있기를 바랍니다.
예를 들어 어디에서 작동하지 않습니까? – Stoic