ChAk
Новичок
Не люблю ассоциативные массивы так как они затрудняют рефакторинг. Другое дело объекты с которыми прекрасно дружит любая ide. Поэтому везде стараюсь использовать объекты вместо ассоциативных массивов.
Задача из ассоциативные массивы сделать объект на основании объявленного класса.
Есть ли какой то ПРОСТОЙ способ сделать так что бы класс был не stdClass а нужный нам Cat?
Вариант: можно написать PHPDoc и указать класс Cat для переменной, но хотелось бы настоящий объект а не подделку. Ведь есть такие вещи как instanceof и значения полей в классе по-умолчанию и хотелось что бы они работали
Задача из ассоциативные массивы сделать объект на основании объявленного класса.
PHP:
class Cat
{
public $sex = 'male';
public $name = 'Vasya';
public $weight = 5;
}
$cat = new Cat();
// из объекта в массив - нет проблем
$cat_array = ((array) $cat);
var_dump($cat_array);
// выведет
array(3) {
'sex' => string(4) "male"
'name' => string(5) "Vasya"
'weight' => int(5)
}
// а вот обратно - проблема класс stdClass
var_dump((object) $cat_array);
// выведет
class stdClass#8 (3) {
public $sex => string(4) "male"
private $name => string(5) "Vasya"
public $weight => int(5)
}
Вариант: можно написать PHPDoc и указать класс Cat для переменной, но хотелось бы настоящий объект а не подделку. Ведь есть такие вещи как instanceof и значения полей в классе по-умолчанию и хотелось что бы они работали