> 백엔드 개발 > PHP 튜토리얼 > PHP의 __toString() 메소드에 대한 자세한 설명

PHP의 __toString() 메소드에 대한 자세한 설명

藏色散人
풀어 주다: 2023-04-07 06:38:01
원래의
11082명이 탐색했습니다.

__toString(), 클래스를 문자열로 처리할 때의 응답 메서드

함수:

# 🎜🎜 #__toString() 메서드는 클래스가 문자열로 처리될 때 클래스가 어떻게 응답해야 하는지에 사용됩니다. 예를 들어 `echo $obj;`가 표시되어야 하는 내용입니다.

참고:

이 메서드는 문자열을 반환해야 합니다. 그렇지 않으면 `E_RECOVERABLE_ERROR` 수준의 치명적인 오류가 발생합니다.

경고:

__toString() 메서드에서는 예외를 발생시킬 수 없습니다. 그렇게 하면 치명적인 오류가 발생합니다.

Code:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public function __toString()
    {
        return  &#39;go go go&#39;;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
echo $person;
로그인 후 복사

Result:

go go go
로그인 후 복사

따라서 __toString() 매직 메서드가 없는 경우 class 실행하면 어떻게 되나요? 테스트해 보겠습니다.

코드:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    
}
$person = new Person(&#39;小明&#39;); // 初始赋值
echo $person;
로그인 후 복사

결과:

Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18
很明显,页面报了一个致命错误,这是语法所不允许的。
로그인 후 복사

위 내용은 PHP의 __toString() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿