0

以下は私が作成したコードです。ここでのポイントは、関数の引数内のすべての文字列を変換することです。

たとえば、fname('変数1=値1&変数2=値2'); プレーンテキストを解析する代わりに、 variable1 と variable2 を $variable1, $variable2 として ang 変数に変換する必要があります。eval() 関数が便利であることがわかりましたが、「variable1」とその値である 1 つの文字列しか取りません。

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

ここでの問題は、「解析エラー: 構文エラー、D:\xampp\htdocs...\index.php(7) の予期しない '=': 1 行目の eval()'d コード」というエラーが発生したことです。ただし、関数の引数内に変数と値が 1 つしかない場合は完全に機能しますが、ここにはさらに多くのパラメーターが必要です。これを行うことは可能ですか、または評価する前にパラメーターをカウントする他の方法はありますか?

ありがとうございました、

4

6 に答える 6

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');
于 2013-02-26T16:47:16.533 に答える
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);
}
于 2013-02-26T16:31:20.610 に答える
1

PHPexplode関数を使用して文字列を分割し、使用evalして各変数を個別に評価できます。

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

$myvars次に、必要に応じて解析してフィードできる配列evalです。

于 2013-02-26T16:32:10.747 に答える
1

おそらく、explode() を使用できますか?

$varArr = explode("&",$arg);
foreach ($varArr as $varKey=>$varVal) {
    echo eval('return $'.$varKey.'='.$varVal.';');
}
于 2013-02-26T16:33:02.077 に答える
1

$arg を & で分割して各変数を取得し、次に = で分割して各変数と値を取得する必要があります。

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

foreach ($vars as $var) {
    $parts = explode("=", $var);
    echo eval('return $'. $parts[0] . '='. $parts[1] . ';');
}
于 2013-02-26T16:35:43.427 に答える
1

このようなもの:

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

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

サルドス ;)

于 2013-02-26T16:43:16.383 に答える