PHP对象的默认返回值

时间:2010-08-30 04:28:33

标签: php arrays object default-value

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

<?php

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

$obj = sth();
echo $obj;

?>

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

如何定义默认值?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

创建包含对象数组的类作为属性。并在__toString()方法中返回您想要的任何内容。