PHP对象的默认返回值

sun*_*tch 1 php arrays object default-value

我有一个返回对象数组的函数:

<?php

function sth()
{
   return (object) array(
     "obj1" => $obj1,
     "obj2" => $obj2,
     "obj3" => $obj3
   );
}

$obj = sth();
echo $obj;

?>
Run Code Online (Sandbox Code Playgroud)

这里我想定义$ obj的默认值.它将返回默认值而不是$ obj1,$ obj2,$ obj3.

如何定义默认值?

dec*_*eze 5

您需要向对象添加实际功能才能实现此目的.简单地将数组转换为对象只会创建一个包含某些值的对象,它与数组没有太大区别.有没有对任何数组或对象的"默认值"的概念,以唯一的办法模拟这个概念是使用魔术方法实现它,在这种情况下__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;
Run Code Online (Sandbox Code Playgroud)