PHP သည်ဝက်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသော server-side scripting language ဖြစ်သည်။ PHP တွင် parameters တွေကိုဖြတ်သန်းရန်နည်းလမ်းနှစ်မျိုးရှိသည်။ တန်ဖိုးနှင့်ရည်ညွှန်းခြင်းဖြင့်တန်ဖိုး။ ဤဆောင်းပါးသည် PHP ရှိတန်ဖိုးလွှဲပြောင်းယန္တရားကိုအာရုံစိုက်ပြီးစာဖတ်သူများအားဤအယူအဆကိုတိကျသောသင်္ကေတများဖြင့်မာစတာအောင်ကူညီလိမ့်မည်။
Value Passing သည် function ၏ပြင်ပ parameters များကို function အတွင်းရှိပြင်ပ parameters တွေကိုကူးယူရန်ရည်ရွယ်သည်။ function အတွင်းရှိ parameters များကိုပြုပြင်ခြင်းသည်ပြင်ပ variable ကိုထိခိုက်လိမ့်မည်မဟုတ်ပါ။ တန်ဖိုးဖြတ်သန်းခြင်းကိုအခြေခံဒေတာအမျိုးအစားများ (ဥပမာကိန်းများ, ရေပေါ်နံပါတ်များ, ကြိုးများစသည်တို့) တွင်အသုံးပြုသည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
function addNumber($num) {
$num = $num + 10;
return $num;
}
$number = 5;
$newNumber = addNumber($number);
echo "မူရင်းတန်ဖိုး:" . $number . "<br>"; // ထုတ်လုပ်ခြင်း 5
echo "ပြုပြင်ထားသောတန်ဖိုး:" . $newNumber; // ထုတ်လုပ်ခြင်း 15
?>
အထက်ပါကုဒ်နမူနာတွင် function addnumber သည် parameter $ num ကိုလက်ခံရရှိပြီး 10 ထပ်ထည့်ပြီးနောက်တန်ဖိုးကိုပြန်ပို့သည်။ သို့သော် function ၏အတွင်းပိုင်းပြုပြင်မွမ်းမံခြင်း၏တန်ဖိုးကိုဒေါ်လာအရေအတွက်၏တန်ဖိုးကိုမထိခိုက်ပါ။
Arrays နှင့် Objects များသည် PHP တွင်ကိုးကားချက်များဖြင့်ဖြတ်သန်းလေ့ရှိသော်လည်း၎င်းတို့သည်လွန်ခဲ့သည့်အတိုင်းဖြတ်သန်းသွားသည့်တန်ဖိုး၏ယန္တရားကိုလိုက်နာနေဆဲဖြစ်ပြီးသတ်သတ်မှတ်မှတ်အပြုအမူသည်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်အရာနှင့်ကွဲပြားနိုင်သည်။ ဤတွင် Object Value Passing ၏ဥပမာတစ်ခုဖြစ်သည်။
<?php
class Person {
public $name;
}
function changeName($obj) {
$obj->name = 'Lucy';
}
$person = new Person();
$person->name = 'John';
changeName($person);
echo "မူရင်းအမည်:" . $person->name . "<br>"; // ထုတ်လုပ်ခြင်း John
echo "ပြုပြင်ထားသောအမည်:" . $person->name; // ထုတ်လုပ်ခြင်း Lucy
?>
ဤဥပမာတွင်ပစ္စည်းသည် function changename သို့ဒေါ်လာတစ် ဦး ကိုယူထားသောအရာဝတ်ထုကိုဖြတ်သန်းသွားသောအခါလုပ်ငန်းသည်၎င်း၏ပိုင်ဆိုင်မှုတန်ဖိုးကိုပြည်တွင်း၌ပြောင်းလဲသွားသည်ကိုကျွန်ုပ်တို့တွေ့ရသည်။
Arrays အတွက်အလားတူအခြေအနေများလည်းသက်ဆိုင်သည်။ ဤနေရာတွင် array တန်ဖိုးများကိုဖြတ်သန်းခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။
<?php
function changeElement($arr) {
$arr[0] = 100;
}
$array = [1, 2, 3];
changeElement($array);
echo "မူရင်းခင်းကျင်း:";
print_r($array); // ထုတ်လုပ်ခြင်း [1, 2, 3]
?>
အပေါ်ကပြထားတဲ့အတိုင်း Array Element ကိုပြုပြင်မွမ်းမံပေမယ့်အပြင်မှာခင်းကျင်းမှုရဲ့တန်ဖိုးကိုမထိခိုက်ပါဘူး။
ဤဆောင်းပါးမှတစ်ဆင့် PHP တွင်တန်ဖိုးလွှဲပြောင်းရေးစနစ်ကိုပိုမိုနက်ရှိုင်းစွာနားလည်နိုင်သည်။ အခြေခံအချက်အလက်စာများအတွက် PHP သည်တန်ဖိုးရှိအချက်အလက်အမျိုးအစားများ (array နှင့် objects များကဲ့သို့) သည်ဖြတ်သန်းသွားသောလမ်းကြောင်းများကဲ့သို့လုပ်ဆောင်နေပါက, ထို့ကြောင့် developer များပရိုဂရမ်၏မှန်ကန်မှုကိုသေချာစေရန်ကုဒ်ရေးသားသည့်အခါကွဲပြားခြားနားသောလိုအပ်ချက်များကိုအညီ,