Вам нужно добавить реальную функциональность к объекту для достижения этой цели.Простое приведение массива к объекту создает только объект, который содержит некоторые значения, он не сильно отличается от массива.Нет понятия «значения по умолчанию» для массивов или объектов, единственный способ имитировать эту концепцию - реализовать ее с использованием магических методов, в данном случае __toString
.Таким образом, вам нужно создать класс, похожий на этот:
class ObjectWithDefaultValue {
public function __construct($params) {
// assign params to properties
...
}
public function __toString() {
return $this->obj1;
}
}
function sth() {
$obj = new ObjectWithDefaultValue(array(
"obj1" => $obj1,
"obj2" => $obj2,
"obj3" => $obj3
));
return $obj;
}
$obj = sth();
echo $obj;