PHP stdClass устанавливает свойство id как странное поведение

Может ли кто-нибудь объяснить это поведение?

    $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' в порядке, если я его явно укажу. Я могу установить другие имена переменных динамически - то есть "произвольно". Какие-либо предложения?

3 ответа

Решение

Там нет переменной с именем $id,

Попробуй это

$id = "2";

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

Это о том, как php оценивает $object->$$test;

Во-первых $$test оценивается, это приводит к вар $id и это дает Notice: Undefined variable: id

Решением будет определение переменной $id, но лучше использовать $object->{$test}

Есть синтаксическая ошибка. ты хочешь этого я верю

$object->{$test}

вместо

$object->$$test
Другие вопросы по тегам