提问人:Madara's Ghost 提问时间:8/29/2011 最后编辑:Madara's Ghost 更新时间:8/29/2011 访问量:98
反对返回属性?
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
float
boolean
$obj = new Type(true);
echo !$obj; //Desired output: false
$obj2 = new Type(9);
echo ($obj + 1); //Desired output: 10
答:
4赞
Yoshi
8/29/2011
#1
参见:魔术方法
class Type {
public function __toString() {
return (string)$this->value;
}
}
如果你对物体的使用不会触发魔法,你可以完全使用:
$someVar = (string)$obj;
更新:
除了字符串或数组(参见 ArrayAccess 接口)之外,目前还不可能让 php 像预定义的数据类型一样处理对象。
评论
0赞
Madara's Ghost
8/29/2011
差不多了,但我希望它适用于所有类型,(否则现在会调用该类,对吗? :P) 我已经编辑了我的问题以澄清。String
0赞
Yoshi
8/29/2011
@Rikudo Sennin 如果你看一下上面的链接,你会发现你目前无法用php实现。
0赞
Madara's Ghost
8/29/2011
请将其添加到答案中,我将接受它作为正确的:)谢谢。
评论