라이브러리

[PHP] Stringable::__toString - 객체의 문자열 표현을 가져옵니다.




Stringable::__toString


PHP 8.0 버전부터 `Stringable` 인터페이스가 추가되었습니다. 이 인터페이스는 `__toString` 메서드를 정의하여 객체를 문자열로 변환할 수 있도록 합니다.

`Stringable` 인터페이스는 다음과 같은 메서드를 정의합니다.

#hostingforum.kr
php

public function __toString(): string;



이 메서드는 객체를 문자열로 변환할 때 호출됩니다. 이 메서드는 `string` 타입을 반환해야 합니다.

예제


다음 예제는 `Stringable` 인터페이스를 구현한 `Person` 클래스를 보여줍니다.

#hostingforum.kr
php

class Person implements Stringable

{

    private $name;

    private $age;



    public function __construct(string $name, int $age)

    {

        $this->name = $name;

        $this->age = $age;

    }



    public function __toString(): string

    {

        return "이름: $this->name, 나이: $this->age";

    }

}



`Person` 클래스는 `Stringable` 인터페이스를 구현하여 `__toString` 메서드를 정의했습니다. 이 메서드는 객체를 문자열로 변환할 때 호출됩니다.

다음 예제는 `Person` 객체를 문자열로 변환하는 방법을 보여줍니다.

#hostingforum.kr
php

$person = new Person("John Doe", 30);

echo $person . "
"; // 이름: John Doe, 나이: 30



위 예제에서 `$person` 객체를 문자열로 변환하기 위해 `$person` 객체를 문자열 연산자 (`.`)와 함께 사용했습니다. 이 연산자는 `$person` 객체의 `__toString` 메서드를 호출하여 객체를 문자열로 변환했습니다.

사용자 정의 객체를 문자열로 변환하는 방법


`Stringable` 인터페이스를 구현하지 않은 사용자 정의 객체를 문자열로 변환하는 방법은 다음과 같습니다.

#hostingforum.kr
php

class Person

{

    private $name;

    private $age;



    public function __construct(string $name, int $age)

    {

        $this->name = $name;

        $this->age = $age;

    }



    public function __toString(): string

    {

        return "이름: " . $this->name . ", 나이: " . $this->age;

    }

}



위 예제에서 `Person` 클래스는 `Stringable` 인터페이스를 구현하지 않았지만 `__toString` 메서드를 정의했습니다. 이 메서드는 객체를 문자열로 변환할 때 호출됩니다.

다음 예제는 `Person` 객체를 문자열로 변환하는 방법을 보여줍니다.

#hostingforum.kr
php

$person = new Person("John Doe", 30);

echo $person . "
"; // 이름: John Doe, 나이: 30



위 예제에서 `$person` 객체를 문자열로 변환하기 위해 `$person` 객체를 문자열 연산자 (`.`)와 함께 사용했습니다. 이 연산자는 `$person` 객체의 `__toString` 메서드를 호출하여 객체를 문자열로 변환했습니다.

결론


`Stringable` 인터페이스는 PHP 8.0 버전부터 추가되었습니다. 이 인터페이스는 `__toString` 메서드를 정의하여 객체를 문자열로 변환할 수 있도록 합니다. 사용자 정의 객체를 문자열로 변환하는 방법은 `Stringable` 인터페이스를 구현하거나 `__toString` 메서드를 정의하는 것입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 115 페이지

검색

게시물 검색