중복 가능성:
PHP ToString() 동등품
개체를 php에서 문자열로 변환하는 방법
사실 저는 웹 서비스 API를 다루고 있습니다.한 API의 출력을 다른 API의 입력으로 사용하고 싶습니다.이 작업을 하려고 하면 다음과 같은 오류가 발생합니다.잡을 수 있는 치명적인 오류: 클래스 std 개체를 C:…의 문자열로 변환할 수 없습니다.
이것은 첫 번째 API의 출력입니다.: stdClass Object ( [ __ _ number ]= > 10ba60 )이제 그 번호만 두 번째 AP의 입력으로 사용합니다.
print_r과 _string()은 모두 동작하지 않습니다.
질문에 대한 답변
오브젝트가 문자열로 표시되는 방법을 커스터마이즈할 수 있습니다.__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:”J”J”;}
주조 연산자 사용(string)$yourObject;
이 경우,print_r
function, docs
오브젝트 시리얼라이제이션모듈이 있으며, 시리얼라이제이션 기능을 사용하여 임의의 오브젝트를 시리얼라이제이션 할 수 있습니다.
당신의 경우, 당신은 단순히 다음을 사용해야 합니다.
$firstapiOutput->document_number
두 번째 api 입력으로 사용합니다.