-2

我有一个名为 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
4

1 回答 1

4

请参阅:魔术方法

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

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

$someVar = (string)$obj;

更新

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

于 2011-08-29T10:35:30.360 回答