对象到字符串。怎么样?

时间:2012-04-09 20:12:18

标签: php oop object

我做了一些研究。我发现你可以序列化然后反序列化以获得一个字符串...但我想要一个更好的解决方案。

我得到了IMAP梨模块(function imap_getmailboxes)返回的对象数组。

public function GetMailBoxes(){
    $List = imap_getmailboxes($this->Link, '{'.$this->Server.':'.$this->Port.'}', '*');

    $Data = array();
    if(is_array($List)){
        foreach($List as $Key => $Value){
            $Value = unserialize(serialize($Value));
            $In = strpos($Value->name, '{');
            $Out = strpos($Value->name, '}');

            $Part = substr($Value, $Out);
            $Value->real_name = explode($Value->delimiter, imap_utf7_decode($Part));
            $Value->real_name = (isset($Value->real_name[1]) ? $Value->real_name[1] : null);

            $Data[$Key] = $Value;
        }
    }

    return $Data;
}

这里的问题是strpos告诉我这个Warning: substr() expects parameter 1 to be string, object given in /home/david/domains/davidbelanger.net/public_html/panel/drivers/mail.php on line 178

如何将对象转换为字符串?任何想法,从来没有这样做过。

感谢。

2 个答案:

答案 0 :(得分:4)

我认为不是

$Part = substr($Value, $Out);

你想要

$Part = substr($Value->name, $Out);

答案 1 :(得分:0)

您可以覆盖魔术方法__toString()

如上所述:http://www.php.net/manual/en/language.oop5.magic.php#object.tostring

相关问题