kemply
@kemply
школьник

Как создать объект-массив?

Всегда создаю объект-массивы так:
$array = (object) array(
  'qwe' => 123,
  'rty'   => 456
);

но чувствую, что это неправильно... Как создать такой объект не используя класс?
  • Вопрос задан
  • 424 просмотра
Решения вопроса 3
VladimirAndreev
@VladimirAndreev
php web dev
user@local:~$ php -a
Interactive mode enabled

php > $a = new stdClass;
php > $a->qwe=123;
php > $a->rty=456;
php > var_dump($a);
class stdClass#1 (2) {
public $qwe =>
int(123)
public $rty =>
int(456)
}
php >
Ответ написан
Комментировать
artem90
@artem90
TeamLead, Developer
Не вижу тут ничего неправильного.
Достаточно простой и легкий способ создать динамический \stdClass
Плохо здесь, на мой взгляд, только одно - нетипизированный объект.
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега PHP
Пробуйте так:
class Config
{
 public $paramOne;
 public $paramTwo;
}

$config = new Config();

$config->paramOne = "Hi";

echo $config->paramOne;


Еще можно так, но никто не гарантирует, что вы забудете задать свойство, но будете пытаться его получить:
$config = new stdClass();
$config->paramOne = "Hi";
echo $config->paramOne;


Еще можно просто взять массив и сделать из него объект через json:
$data = ["paramOne" => "Hi", "paramTwo" => "ne hi"];

$config = json_decode(json_encode($data));
echo $config->paramOne;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы