До недавнього часу саме так я створював об’єкти на льоту.
$someObj = json_decode("{}");
Тоді:
$someObj->someProperty = someValue;
Але зараз я йду з:
$someObj = (object)[];
Тоді як раніше:
$someObj->someProperty = someValue;
Звичайно, якщо ви вже знаєте властивості та значення, ви можете встановити їх всередині, як було зазначено:
$someObj = (object)['prop1' => 'value1','prop2' => 'value2'];
NB: Я не знаю, на яких версіях PHP це працює, тому вам потрібно пам’ятати про це. Але я вважаю, що перший підхід (який також є коротким, якщо у будівництві немає властивостей встановити) повинен працювати для всіх версій, які мають json_encode / json_decode