이 글은 주로 객체를 JSON 문자열로 변환하는 방법을 소개합니다. 이제 이를 여러분과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 }
new 이번에는 객체와 직접 echo:
1 $person1 = new Student('jack', 20) 2 echo $person1; 결과가 인쇄되지 않습니다. 예상 개체를 종료하는 대신 치명적인 오류가 보고되었습니다:
. 이는 Student 클래스에 의해 인스턴스화된 개체를 문자열로 변환할 수 없음을 의미합니다. 여기서는 echo 뒤에 문자열이 와야 한다는 메시지가 표시됩니다. ,
그렇지 않으면 자동으로 문자열로 변환됩니다. 그러면 객체를 문자열로 변환하는 방법은 무엇입니까?
먼저 마법 메서드인 __tostring()을 소개합니다. 이 메서드는 클래스가 문자열로 처리될 때 어떻게 응답해야 하는지 결정하는 데 사용됩니다. 예를 들어
echo $obj;무엇을 표시해야 할까요? 이 메소드는 문자열을 반환해야 합니다. 그렇지 않으면
수준의 치명적인 오류가 발생합니다.E_RECOVERABLE_ERROR
Student 클래스에 이 마법 메소드를 추가하세요.
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 function __tostring() { 9 return json_encode($this, JSON_FORCE_OBJECT); 10 } 11 }
json_encode(value, options) 메소드는 객체를 JSON 문자열로 변환할 수 있습니다. 이 메소드는 두 개의 매개변수,
첫 번째 매개변수: value
값을 허용합니다. 리소스 유형을 제외하고 모든 데이터 유형이 가능합니다.이 함수는 UTF-8로 인코딩된 데이터만 허용합니다.
두 번째 매개변수: 옵션
다음 상수로 구성된 바이너리 마스크: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.
반환 값: 인코딩이 성공하면 JSON 형식으로 표현된 문자열을 반환하고, 실패하면 FALSE를 반환합니다.
첫 번째 매개변수: json 문자열
두 번째 매개변수 : true/false. true일 경우 문자열을 배열로 변환한다는 의미, false일 경우 객체로 변환한다는 의미입니다. 기본값은 false
반환값: 객체 또는 배열( 두 번째 매개변수는 true일 때)
이 때 브라우저를 열면 변환이 성공한 것을 확인할 수 있습니다.
위는 이 글의 전체 내용입니다. 학습에 관한 더 많은 내용을 보려면 PHP 중국어 웹사이트를 주목하세요!
관련 권장사항:
PHP Redis 서비스 컴파일 및 설치 방법PHP 소스 코드로 데이터베이스 및 테이블 구성 파일-오류 로그 작성 방법
위 내용은 객체를 JSON 문자열로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!