如何在php中将对象转换为字符串
实际上我正在处理Web服务API。我希望使用一个API的输出作为另一个API的输入。当我试图这样做时,我得到这样的错误:可捕获的致命错误:类std的对象无法转换为C:\ ...
中的字符串这是第一个API :: stdClass对象的输出([document_number] => 10ba60)现在我只想将那个数字用作第二个AP的输入
print_r和_string()在我的情况下都不起作用
答案 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的输入。