2013-02-26 3 views
0

아래 코드는 내가 작성한 코드입니다. 여기에서 요점은 함수 인자 안에있는 모든 문자열을 변환하는 것이다.함수 인수 내에서 문자열을 PHP의 변수로 변환

예를 들어, fname ('variable1 = value1 & variable2 = value2'); 변수 1 & variable2를 변수 ang에 $ variable1, $ variable2 대신 일반 텍스트로 구문 분석해야합니다. 나는 eval() 함수가 유용하다는 것을 알았지 만 "variable1"과 그 값인 하나의 문자열만을 취한다.

function addFunction($arg){ 
    echo eval('return $'. $arg . ';'); 
} 
addFunction('variable1=value1&variable2=value2'); 

이제 문제는이 오류 "구문 분석 오류 가지고 있습니다 : 구문 오류, 예기치 않은 '='D의 : \ XAMPP \ htdocs를 ... \ (7)의 index.php : 평가() 'D 코드 온라인 1 ". 그러나 함수 인수 내에 하나의 변수와 값만 있으면 완벽하게 작동하지만 더 많은 매개 변수가 필요합니다. 이것은 가능한 일입니까, 아니면 평가되기 전에 매개 변수를 세는 다른 방법이 있습니까? 당신이 이름을 가진 변수를 만들려고

답변

1
function addFunction($arg) 
{ 
    parse_str($arg, $args); 

    foreach ($args as $key => $val) { 
     echo $key , " --> " , $val, "\n"; 
    } 


} 

addFunction('variable1=value1&variable2=value2'); 

출력 또한 사용할 수 있습니다

variable1 --> value1 
variable2 --> value2 

function addFunction($arg) 
{ 
    parse_str($arg); 

    echo $variable2; // value2 

} 

addFunction('variable1=value1&variable2=value2'); 
+0

정말 멋진 사람입니다. 팁 주셔서 감사. – leojarina

1

, 감사합니다 :

$variable1=value1&variable2=value2

당신은 원하는 미래의 변수 이름을 얻기 위해 &에 그것을 폭발 할 필요가있다.

function addFunction($arg){ 

    echo eval('return $'. $arg . ';'); 
} 

$string = 'variable1=value1&variable2=value2'; 

$array = explode('&', $string); 

foreach($array as $part) 
{ 
    addFunction($part); 
} 
1

당신은 PHP explode 기능을 사용하여 문자열을 중단 한 다음을 개별적으로 각각의 변수를 평가하기 위해 eval를 사용할 수 있습니다.

$myvars = explode ('$', 'variable1=value1&variable2=value2'); 

$myvars 그런 다음 구문 분석하고 필요에 따라 eval에 공급할 수있는 배열입니다.

1

아마도 explode()를 사용할 수 있습니까?

$varArr = explode("&",$arg); 
foreach ($varArr as $varKey=>$varVal) { 
    echo eval('return $'.$varKey.'='.$varVal.';'); 
} 
1

은 각 변수와 값을 얻을 = 다시 각 변수를 가져올하고 &에서 $의 인수를 분리해야합니다. 이 같은

$arg = 'variable1=value1&variable2=value2'; 
$vars = explode('&', $arg); 

foreach ($vars as $var) { 
    $parts = explode("=", $var); 
    echo eval('return $'. $parts[0] . '='. $parts[1] . ';'); 
} 
1

뭔가 :

function addFunction($arg) 
{ 
    $varArr = explode("&",$arg); 
    $varResponse =""; 

    foreach ($varArr as $varKey=>$varVal) { 
    $varResponse = $varResponse."$".$varVal.";"; 
    } 
    return $varResponse; 
} 
    echo addFunction('variable1=value1&variable2=value2'); 

Saludos)

관련 문제