对象返回属性?

时间:2011-08-29 10:32:06

标签: php oop magic-methods

我有一个叫做Type:

的类
class Type { ... }

其中包含名为$value的属性:

class Type {
    protected $value;

    //More code here...
}

我希望当我尝试使用函数时,当我传递对象时,将传递$obj->value的值。例如:

$obj = new Type("value");
echo $obj; //Desired output: value

我尝试过很多东西,到处搜寻,但我似乎无法找到这个。它甚至可能吗?

提前致谢。 :)

编辑:也许你对我的问题有点误解(或缩小)了。我希望它适用于所有值类型,而不仅仅是字符串类型,包括int floatboolean

$obj = new Type(true);
echo !$obj; //Desired output: false

$obj2 = new Type(9);
echo ($obj + 1); //Desired output: 10

1 个答案:

答案 0 :(得分:4)

请参阅:Magic Methods

class Type {
  public function __toString() {
    return (string)$this->value;
  }
}

如果您对该对象的使用不会触发 magic ,您可以继续使用:

$someVar = (string)$obj;

<强>更新

除了字符串或数组(参见ArrayAccess interface)之外,目前还不可能让php处理像预定义data types这样的对象。