__tostring() 및 __invoke()의 PHP 객체 지향 세부 코드 예제

黄舟
풀어 주다: 2023-03-07 06:28:01
원래의
1869명이 탐색했습니다.

tostring()Magic method

객체를 string으로 사용하는 경우 이 메서드를 사용합니다. 자동으로 호출되며, 이 메소드에서는 객체를 문자열로 변환한 결과를 나타내기 위해 특정 문자열을 반환할 수 있습니다. 이 마법의 방법은 비교적 일반적입니다.
참고: 이 메소드가 정의되지 않으면 객체를 문자열로 사용할 수 없습니다!

클래스의 정의되지 않은 tostring() 메소드 예:

<?php
ini_set(&#39;display_errors&#39;, 1);
class A{
    public $name;    
    public $age;   
     public $sex;    
     function construct($name, $age, $sex){
        $this->name = $name;        
        $this->age = $age;        
        $this->sex = $sex;   
    }
}
$obj1 = new A(&#39;张三&#39;, 15, &#39;男&#39;);
echo $obj1;    //echo 后面为字符串,而对象不是字符串,会报错
$v1 = "abc" . $obj1;  //.为字符串连接符,会报错
$v2 = "abx" + $obj1;  //+为加法运算符,会报错?>
로그인 후 복사

세 가지 오류 내용은

Catchable fatal error: Object of class A could not be converted to string
Catchable fatal error: Object of class A could not be converted to string
Notice: Object of class A could not be converted to int
로그인 후 복사

입니다. tostring() 메서드는 클래스

<?php
ini_set(&#39;display_errors&#39;, 1);
class A{
    public $name;    
    public $age;    
    public $sex;    
    function construct($name, $age, $sex){
        $this->name = $name;        
        $this->age = $age;        
        $this->sex = $sex;   
    }    function tostring(){
        $str = "姓名:" . $this->name;   
        $str .= "年龄:" . $this->age;    
        $str .= ",性别:" . $this->sex;        
        return $str;   //这里可以返回“任何字符串内容”

    }
}
$obj1 = new A(&#39;张三&#39;, 15, &#39;男&#39;);
echo $obj1;    //调用tostring(),不会报错?>
로그인 후 복사

실행 결과

姓名:张三年龄:15,性别:男
로그인 후 복사

invoke() 매직 메서드에 정의되어 있습니다. 🎜 >

이 메소드는 해당 객체를

함수로 사용할 때 자동으로 호출됩니다. 이는 일반적으로 권장되지 않습니다. 아아아아

위 내용은 __tostring() 및 __invoke()의 PHP 객체 지향 세부 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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