我有一个叫做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
答案 0 :(得分:4)
请参阅:Magic Methods
class Type {
public function __toString() {
return (string)$this->value;
}
}
如果您对该对象的使用不会触发 magic ,您可以继续使用:
$someVar = (string)$obj;
<强>更新强>:
除了字符串或数组(参见ArrayAccess interface)之外,目前还不可能让php处理像预定义data types这样的对象。