我有一个类叫做Type:
class Type { ... }
有一个名为$value
的属性:
class Type {
protected $value;
//More code here...
}
我希望当我尝试使用一个函数时,当我传递对象时,$obj->value
的值将被传递。例如:
$obj = new Type("value");
echo $obj; //Desired output: value
我试了很多东西,到处找,但我似乎找不到这个。这可能吗?
提前感谢。:)
编辑:也许你有点误解(或缩小)我的问题。我希望它适用于所有值类型,而不仅仅是字符串类型,包括int
float
和boolean
$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处理像预定义数据类型这样的对象。