วิธีการ __toString

วิธีการ __toString เป็นวิธีการวิเศษ (magic method) ใน PHP ที่กำหนดว่า ออบเจ็กต์ควรมีพฤติกรรมอย่างไรเมื่อพยายามแปลงมันเป็นสตริง วิธีนี้จะถูกเรียกใช้โดยอัตโนมัติเมื่อใช้ออบเจ็กต์ในบริบท ที่คาดหวังว่าจะได้สตริง เช่น เมื่อแสดงผลผ่าน echo หรือเมื่อต่อสตริง (concatenation) วิธีการนี้จะต้องคืนค่าการแสดงผลของออบเจ็กต์ในรูปแบบสตริง

ไวยากรณ์

phppublic function __toString(): string
{
  // return string representation
}

ตัวอย่าง

มาสร้างคลาสง่ายๆ พร้อมกับวิธีการ __toString:

php<?php
  class User
  {
    public function __toString(): string
    {
      return 'User object';
    }
  }

  $user = new User();
  echo $user;
?>

ผลลัพธ์การทำงานของโค้ด:

php'User object'

ตัวอย่าง

ตัวอย่างที่ซับซ้อนมากขึ้นโดยการคืนค่าคุณสมบัติ (properties) ของออบเจ็กต์:

php<?php
  class Product
  {
    private $name = 'Laptop';
    private $price = 1000;

    public function __toString(): string
    {
      return $this->name . ' - $' . $this->price;
    }
  }

  $product = new Product();
  echo 'Product: ' . $product;
?>

ผลลัพธ์การทำงานของโค้ด:

php'Product: Laptop - $1000'

ดูเพิ่มเติม

  • วิธีการ __construct,
    ซึ่งเป็นตัวสร้างออบเจ็กต์ (constructor)
  • วิธีการ __destruct,
    ซึ่งเป็นตัวทำลายออบเจ็กต์ (destructor)