对象返回属性


Object to return property?

我有一个类叫做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

参见:Magic Methods

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

如果你使用的对象不会触发魔法,你总是可以使用:

$someVar = (string)$obj;

:

除了字符串或数组(见ArrayAccess接口)之外,目前还不可能让php处理像预定义数据类型这样的对象。