3

この質問の仕方がわかりませんが、次のようになります。

$id = 1;
$age = 2;    
$sort = "id"; // or "age";

$arr = array($$sort => 'string'); // so that it becomes 1 => 'string' 
             ^ what goes here?    //      instead of 'id' => string'

これは&文字が「変数変数」に使用されるものですか?

または多分eval

4

3 に答える 3

3

あなたの質問のトピックについて。PHP のロジックでは、これが行われていることを確認できる最善の方法は、変数変数を配列定義の外に割り当てることです。

$id = 1;
$age = 2;    
$sort = "id"; // or "age";
    $Key = $$sort;
$arr = array($Key => 'string');

print_r($arr);

どの出力:

配列 ( [1] => 文字列 )

個人的ですが。この方法は避けることをお勧めします。コードのバックトレース/デバッグを支援するために、キーを明示的に定義することをお勧めします。最後にやりたいことは、可変変数の迷路を調べることです。特に、その場で作成された場合


いじくり。私はこれを持っています。

$arr[$$sort] = "Value";

print_r($arr);

関数を作成する方法を調べました。これを成功させるための実行可能な方法がわかりません。私が提供した情報(配列定義から定義)を使用して、うまくいけば、これが正しい方向にあなたを導くでしょう

于 2014-06-10T00:48:29.843 に答える
0

そのために変数変数は使用しませんが、正しいキーを必要な値に接続する配列を使用します。

$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';

$arr = array($sorts[$sort] => 'string');

一例

于 2014-06-10T00:48:14.977 に答える