>  기사  >  백엔드 개발  >  PHP의 __toString() 메소드에 대한 자세한 설명

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

藏色散人
藏色散人원래의
2019-07-24 14:00:4811033검색

__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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.