PHP OOP ရှိ မှော်ဆန်သော toString နည်းလမ်း

ကျွန်ုပ်တို့လေ့လာမည့် ပထမဆုံးမှော်ဆန်သောနည်းလမ်းကို __toString ဟုခေါ်ပါသည်။ ၎င်းကို class ၏ object (ဥပမာ) ကို string အဖြစ်ပြောင်းလဲရန် ကြိုးပမ်းသည့်အခါ ခေါ်ယူပါသည်။ ဆိုလိုရင်းကို နားလည်အောင်လုပ်ရအောင်။ ကျွန်ုပ်တို့မှာ User ဟုခေါ်သော class တစ်ခုရှိသည်ဆိုပါစို့

User.php<?php
  class User
  {
    private $name;
    private $age;
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
    
    public function getName()
    {
      return $this->name;
    }
    
    public function getAge()
    {
      return $this->age;
    }
  }
?>

ဒီ class ၏ object ကိုဖန်တီးကြည့်ရအောင်

index.php<?php
  $user = new User('john', 25);
?>

ယခု ဖန်တီးထားသော object ကို echo ဖြင့် ထုတ်ပြရန် ကြိုးပမ်းကြည့်ပါမည်

index.php<?php
  $user = new User('john', 25);
  echo $user;
?>

echo ဖြင့် object ကိုထုတ်ပြရန် ကြိုးပမ်းခြင်းသည် string အဖြစ်ပြောင်းလဲခြင်းပင် ဖြစ်ပါသည်။ ဤကိစ္စတွင် PHP သည် error တစ်ခုထုတ်ပေးပါလိမ့်မည်။ အကြောင်းမှာ object များကို ဤသို့ရိုးရှင်းစွာ string အဖြစ်ပြောင်းလဲ၍မရသောကြောင့်ဖြစ်သည်။

အမှားကိုရှောင်ရှားရန်၊ object ကို string အဖြစ်ပြောင်းလဲရန် ကြိုးပမ်းသည့်အခါ PHP အား မည်သို့လုပ်ဆောင်ရမည်ကို ကျွန်ုပ်တို့ ရှင်းလင်းစွာ ပြောပြရပါမည်။ ထို့ကြောင့်ပင် မှော်ဆန်သောနည်းလမ်း __toString ကို အသုံးပြုရခြင်းဖြစ်သည်။

ကျွန်ုပ်တို့၏ class ကုဒ်ထဲတွင် ထိုသို့သောနည်းလမ်းကိုပြုလုပ်ပါက၊ ထိုနည်းလမ်း၏ရလဒ် (ဆိုလိုသည်မှာ ၎င်းက return ဖြင့်ပြန်ပေးသည့် အရာ) သည် object ၏ string ကိုယ်စားပြုပုံဖြစ်လာပါမည်။

echo ဖြင့် object ကိုထုတ်ပြရန် ကြိုးပမ်းသည့်အခါ၊ user ၏နာမည်ကို ထုတ်ပြစေလိုသည်ဆိုပါစို့။ ဆိုလျှင် __toString နည်းလမ်းကိုပြုလုပ်ပြီး ၎င်းအတွင်း၌ name property ၏တန်ဖိုးကို ပြန်ပေးရပါမည်

User.php<?php
  class User
  {
    private $name;
    private $age;
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
    
    // ဖော်ပြပါနည်းလမ်းကို အကောင်အထည်ဖော်ခြင်း
    public function __toString()
    {
      return $this->name;
    }
    
    public function getName()
    {
      return $this->name;
    }
    
    public function getAge()
    {
      return $this->age;
    }
  }
?>

စစ်ဆေးကြည့်ရအောင်

index.php<?php
  $user = new User('john', 25);
  echo $user; // 'john' ကိုထုတ်ပြမည် - အားလုံးအလုပ်လုပ်သည်!
?>
Задание 1

name နှင့် surn properties များပါဝင်သော User class ကိုပြုလုပ်ပါ။ echo ဖြင့် object ကိုထုတ်ပြသည့်အခါ စာမျက်နှာပေါ်တွင် အသုံးပြုသူ၏ နာမည်နှင့် သူ၏မျိုးရိုးအမည်ကို ပြသသည့် string တစ်ခုကို ထုတ်ပြစေရန် ပြုလုပ်ပေးပါ။