1

誰でもこの動作を説明できますか?

    $object = new stdClass();


    //This works.
    $object->test = "Test";

    //This works.
    $arbitrary = "arbitrary";
    $object->$$arbitrary = "again, testing";

    //This works.
    $object->id = "2";

    //This fails
    $test = "id";
    $object->$$test  = "2";  // On this line.

動的変数名を使用して「id」プロパティを設定しようとしています。明示的に指定すれば、「id」プロパティをうまく設定できます。他の変数名を動的に設定できます-つまり、「任意」です。助言がありますか?

4

3 に答える 3

3

。という名前の変数はありません$id

これを試して

$id = "2";

$test = "id";
$object->$$test  = "2";  // On this line.
于 2012-10-25T13:10:11.573 に答える
1

それはphpがどのように評価するかについて$object->$$testです。

最初に the$$testが評価され、これが var につながり$id、それがNotice: Undefined variable: id

解決策は変数を定義することです$idが、より良いのは使用することです $object->{$test}

于 2012-10-25T13:14:33.407 に答える
0

構文エラーがあります。あなたはこれが欲しいと私は信じています:

$object->{$test}

それ以外の

$object->$$test
于 2012-10-25T13:11:54.140 に答える