객체를 string으로 사용하는 경우 이 메서드를 사용합니다. 자동으로 호출되며, 이 메소드에서는 객체를 문자열로 변환한 결과를 나타내기 위해 특정 문자열을 반환할 수 있습니다. 이 마법의 방법은 비교적 일반적입니다.
참고: 이 메소드가 정의되지 않으면 객체를 문자열로 사용할 수 없습니다!
<?php ini_set('display_errors', 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('张三', 15, '男'); 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
<?php ini_set('display_errors', 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('张三', 15, '男'); echo $obj1; //调用tostring(),不会报错?>
실행 결과
姓名:张三年龄:15,性别:男
함수로 사용할 때 자동으로 호출됩니다. 이는 일반적으로 권장되지 않습니다. 아아아아
위 내용은 __tostring() 및 __invoke()의 PHP 객체 지향 세부 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!