如何在php中将对象转换为字符串

时间:2010-03-18 11:00:09

标签: php

  

可能重复:
  PHP ToString() equivalent

如何在php中将对象转换为字符串

实际上我正在处理Web服务API。我希望使用一个API的输出作为另一个API的输入。当我试图这样做时,我得到这样的错误:可捕获的致命错误:类std的对象无法转换为C:\ ...

中的字符串

这是第一个API :: stdClass对象的输出([document_number] => 10ba60)现在我只想将那个数字用作第二个AP的输入

print_r和_string()在我的情况下都不起作用

5 个答案:

答案 0 :(得分:68)

您可以通过在类中实现__toString()方法来定制对象如何表示为字符串,以便在您的对象为type cast as a string(显式类型转换$str = (string) $myObject;或自动时echo $myObject)您可以控制包含的内容和字符串格式。

如果您只想显示对象的数据,则上述方法可行。如果要将对象存储在会话或数据库中,则需要serialize,因此PHP知道如何重构实例。

一些代码来展示差异:

class MyObject {

  protected $name = 'JJ';

  public function __toString() {
    return "My name is: {$this->name}\n";
  }

}

$obj = new MyObject;

echo $obj;
echo serialize($obj);

输出:

  

我的名字是:JJ

     

○:8: “为MyObject”:1:{S:7: “*名”; S:2: “JJ”;}

答案 1 :(得分:26)

使用投射操作符(string)$yourObject;

答案 2 :(得分:12)

你有print_r函数DOC

答案 3 :(得分:8)

有一个object serialization模块,serialize函数可以序列化任何对象。

答案 4 :(得分:5)

在您的情况下,您应该只使用

$firstapiOutput->document_number

作为第二个api的输入。