앞서 클래스에 "--"로 시작하는 메소드 이름을 선언한다고 말씀드렸는데요(PHP 제공).
은 모두 특정 시점에 다양한 상황에서 자동으로 호출되어 실행되는 메소드입니다. "__toString()" 메서드도 자동으로 호출됩니다.
은 개체 참조가 직접 출력될 때 자동으로 호출됩니다. 앞서 우리는 개체 참조가 포인터라고 말했습니다. 예를 들면 다음과 같습니다. $p=new Person()", $p는 참조입니다.
echo를 사용하여 $p를 직접 출력할 수 없습니다. 그러면 "Catchable fatal error: Person 클래스의 개체를 문자열로 변환할 수 없습니다."가 출력됩니다. 이런 오류는
클래스에 "__toString()" 메소드를 정의하면 객체 참조를 직접 출력할 때 오류는 발생하지 않지만
자동으로 호출됩니다. ." __toString()" 메서드는 "__toString()" 메서드에서 반환된 문자를 출력합니다.
따라서 "__toString()" 메서드에는 반환 값(반환 문)이 있어야 합니다.
function __toString(){ /* 加到session中, 存储下标为code */ $_SESSION["code"] = strtoupper($this->checkCode); //随机产生的字符内容存在session里面 $this->outImg(); return ''; }