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

php
2022-08-30 07:52:06

可能的重复:
PHP ToString() 等效

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

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

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

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


答案 1

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

如果您只想显示对象的数据,则上述方法将起作用。如果要将对象存储在会话或数据库中,则需要对其进行序列化,以便 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

O:8:“MyObject”:1:{s:7:“*name”;s:2:“JJ”;}


答案 2

使用转换运算符(string)$yourObject;


推荐