⊗ppOpMgSP 91 of 107 menu

PHP OOP တွင် မှော်ဆန်သော ဂုဏ်သတ္တိများကို ရေးသားခြင်း

မှော်ဆန်သော နည်းလမ်း __set ကို မရှိသော သို့မဟုတ် ကွယ်ဝှက်ထားသော ဂုဏ်သတ္တိတစ်ခု၏ တန်ဖိုးကို ပြောင်းလဲရန် ကြိုးစားသည့်အခါ ခေါ်ဆိုပါသည်။ ၎င်းသည် ဂုဏ်သတ္တိအမည်နှင့် သတ်မှတ်ပေးရန် ကြိုးစားသော တန်ဖိုးကို ပါရာမီတာအဖြစ် လက်ခံပါသည်။

လက်တွေ့ဥပမာတစ်ခုကို ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် Test ဟူသော အောက်ပါ ကလပ်စ်ရှိသည်ဆိုပါစို့။

<?php class Test { private $prop1; private $prop2; } ?>

ဤကလပ်စ်အတွင်း မှော်ဆန်သော နည်းလမ်း __set ကို ပြုလုပ်ကြပါစို့၊ ၎င်းသည် var_dump လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ဝင်ရောက်အသုံးပြုခံရသော ဂုဏ်သတ္တိ၏ အမည်နှင့် ၎င်းအား သတ်မှတ်ပေးရန် ကြိုးစားသော တန်ဖိုးကို ထုတ်ပြမည်ဖြစ်သည်။

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { var_dump($property . ' ' .$value); } } ?>

ကျွန်ုပ်တို့၏ ကလပ်စ်၏ အလုပ်လုပ်ပုံကို စစ်ဆေးကြည့်ပါမည်။

<?php $test = new Test; $test->prop = 'value'; // __set နည်းလမ်း၏ var_dump သည် 'prop value' ကို ထုတ်ပြမည် ?>

ယခု ကျွန်ုပ်တို့သည် $property ကိန်းရှင် အတွင်း သိမ်းဆည်းထားသော အမည်ရှိ ဂုဏ်သတ္တိတစ်ခုအား တန်ဖိုးသတ်မှတ်ပေးကြပါစို့။

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; // တန်ဖိုးကို သတ်မှတ်ပါသည် } } ?>

ယခုအခါ ကျွန်ုပ်တို့သည် ကလပ်စ်အပြင်ဘက်မှ သီးသန့်ဂုဏ်သတ္တိများအတွင်း ရေးသားနိုင်မည်ဖြစ်သည်။

<?php $test = new Test; $test->prop1 = 1; // 1 ကို ရေးသားပါမည် $test->prop2 = 2; // 2 ကို ရေးသားပါမည် ?>

ကျွန်ုပ်တို့ ရေးသားနိုင်သော်လည်း၊ အမှန်တကယ် တစ်ခုခု ရေးသားမိသလားဆိုတာ စစ်ဆေးရန် မဖြစ်နိုင်ပါ၊ အဘယ်ကြောင့်ဆိုသော် ဂုဏ်သတ္တိများသည် သီးသန့်ဖြစ်နေသောကြောင့် ဖြစ်သည်။

ဤဂုဏ်သတ္တိများအတွက် ရယူသူ (getter) ပြုလုပ်နိုင်သည် သို့မဟုတ် မှော်ဆန်သော နည်းလမ်း __get ကို ရိုးရှင်းစွာ အသုံးပြုနိုင်သည်။ ဒုတိယရွေးချယ်စရာကို အသုံးပြုကြပါစို့။

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; } // ဂုဏ်သတ္တိများအတွက် မှော်ဆန်သော ရယူသူ (getter)။ public function __get($property) { return $this->$property; } } ?>

ယခုအခါ ကျွန်ုပ်တို့၏ ကလပ်စ်၏ အလုပ်လုပ်ပုံကို စစ်ဆေးနိုင်ပါသည်။ စစ်ဆေးကြည့်ပါမည်။

<?php $test = new Test; $test->prop1 = 1; // 1 ကို ရေးသားပါမည် $test->prop2 = 2; // 2 ကို ရေးသားပါမည် echo $test->prop1; // 1 ကို ထုတ်ပြမည် echo $test->prop2; // 2 ကို ထုတ်ပြမည် ?>

တကယ်တော့၊ သီးသန့်ဂုဏ်သတ္တိများအတွင်းသို့ လူတိုင်းအား ရေးသားခွင့်ပေးရန် မသင့်တော်ပါ၊ �ိုသို့ဆိုလျှင် ထိုသီးသန့်ဂုဏ်သတ္တိများ၏ အနှစ်သာရ ပျောက်ကွယ်သွားမည်ဖြစ်သည် (သူတို့အား အများသုံး အဖြစ်ပြုလုပ်ပြီး အဆုံးသတ်လိုက်ခြင်းက ပိုမိုလွယ်ကူသည်)။

ထို့ကြောင့် ဤနည်းလမ်းကို အမှန်တကယ် လိုအပ်မှုရှိသည့် အချိန်များတွင်သာ အသုံးပြုသင့်ပါသည်။ နောက်လာမည့် သင်ခန်းစာများတွင် အောင်မြင်စွာ အသုံးပြုနိုင်သော ဥပမာများကို ထပ်မံဆွေးနွေးပါမည်။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်