>백엔드 개발 >PHP 튜토리얼 >매직 메소드 ___toString() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)

매직 메소드 ___toString() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)

巴扎黑
巴扎黑원래의
2017-04-18 18:16:202226검색

우리 모두는 클래스를 인스턴스화한 후 클래스의 속성에 액세스할 때 항상 $instantiation name->attribute name 형식으로 액세스한다는 것을 알고 있습니다. 그러면 echo 또는 print를 사용하여 객체를 직접 출력한 적이 있습니까? 결과를 시험해 보세요. 어떤 사람들은 이것이 작동하지 않아야 하며 오류가 보고될 것이라고 말합니다. 예, 이러한 직접 출력은 실제로 오류를 보고하지만 __toString 매직 메서드를 사용하면 문제가 없습니다. __toString() 메서드는 객체를 출력하기 전에 먼저 객체를 문자열로 변환하므로 echo 또는 print를 사용하여 출력할 수 있습니다.

인스턴스 분석:

<?php
header("content-type:text/html;charset=utf-8");
class Preson{
public $name;
private $age;
function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
}
public function __toString()
{
return $this->name . &#39;今年已经&#39; . $this->age . &#39;岁了&#39;;
}
}
$preson = new Preson(&#39;小明&#39;,18);
echo $preson;

코드 분석:

먼저 휴먼 클래스를 생성하고 속성을 정의하고 생성자를 생성한 다음 이 클래스를 인스턴스화하고 마지막으로 직접 에코합니다. 수업 이름. 오류 메시지가 페이지에 표시되는 것을 볼 수 있습니다: Preson 클래스의 개체는 15행의 D:WWWtostring.php에서 문자열로 변환될 수 없습니다. 이는 객체의 클래스를 문자열로 변환할 수 없고 출력할 수 없음을 의미합니다. 따라서 __toString() 메서드를 추가하고 필요한 결과를 메서드에 직접 반환하기만 하면 됩니다.

위 내용은 매직 메소드 ___toString() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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