2011-08-29 162 views
-2

我有一类叫做类型:返回属性的对象?

class Type { ... } 

其中有一个名为$value属性:

class Type { 
    protected $value; 

    //More code here... 
} 

我希望,当我尝试使用功能,当我通过对象的价值$obj->value将会通过。例如:

$obj = new Type("value"); 
echo $obj; //Desired output: value 

我试过很多东西,到处搜寻,但我似乎无法找到这一个。它甚至有可能吗?

在此先感谢。 :)

编辑:也许你误解了我的问题(或缩小了一下)。我想为所有的值类型,而不仅仅是那些字符串,包括intfloatboolean

$obj = new Type(true); 
echo !$obj; //Desired output: false 

$obj2 = new Type(9); 
echo ($obj + 1); //Desired output: 10 
+0

尝试使用__toString()魔术方法:) –

+0

你会使用什么样的函数?对于每一个连接到文本,你总是可以使用魔术方法toString。 – Raveline

回答

4

参见:Magic Methods

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

如果你的对象的使用将不会触发魔术你可以使用:

$someVar = (string)$obj; 

更新

除了字符串或数组(见ArrayAccess interface),它是,此刻,不可能有PHP处理对象,如预定义的data types

+0

几乎在那里,但我希望它适用于所有类型,(否则该类将被称为'字符串'现在它会吗?:P)我编辑了我的问题来澄清。 –

+0

@Rikudo Sennin如果你看一下上面的链接,你会发现你现在想用php实现的目标是不可能实现的。 – Yoshi

+0

请将其添加到答案中,我将接受它为正确:)谢谢。 –