Почему мне нужно «переназначить» объект stdClass, чтобы использовать его значение в качестве строки? - PullRequest
0 голосов
/ 26 апреля 2018

Эта ошибка:

Исправимая фатальная ошибка: объект класса stdClass не может быть преобразован в строку

$$site->nomCommission[$site->opponent][$alltheSeat->categorie] = (object) [
   'gamesDate' => $gameDate,
   'idGames' => $site->idGames
];

Это не:

$nomCommission = $site->nomCommission;

$$nomCommission[$site->opponent][$alltheSeat->categorie] = (object) [
   'gamesDate' => $gameDate,
   'idGames' => $site->idGames
];

Теперь, еслиЯ сбрасываю обе переменные, они, очевидно, содержат одну и ту же строку, поскольку они равны.так почему же один считается объектом, так как var dump говорит мне, что они обе строки.Возможно, мне следует использовать другой синтаксис?

$nomCommission = $site->nomCommission;
string(11) "Groupe Test" 

Я привык «переименовывать» мои переменные, потому что это экономит мое время, я избегаю ошибок и часто чище это делать, но в зависимости от проекта я иногда заканчиваюпереименование пути для многих.Я понимаю, что кто-то является объектом (или это?), Но какую логику я должен иметь в виду, когда тратить код на их переименование?

Например, иногда это не работает, выдает такой же видошибки, но в этом случае это работает, поэтому я немного растерялся.Поделитесь с кем-нибудь светом?

$$nomCommission [$site->nomCommission]

1 Ответ

0 голосов
/ 26 апреля 2018

Добавьте фигурные скобки для принудительного анализа:

${$site->nomCommission}[$site->opponent][$alltheSeat->categorie] = ...

Ваш код обрабатывается как:

$obj = $$site;
$obj->nonCommission[$site->opponent][$alltheSeat->categorie] = ...

$$site требует, чтобы $site была строкой, содержащейимя переменной, но $site - это объект, а не строка.

Тем не менее, все, что вы можете сделать с переменными переменными, почти всегда можно сделать с помощью ассоциативных массивов, а синтаксис более понятен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...