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