လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP7 ၏နောက်ခံယန္တရား၏နက်ရှိုင်းသောခွဲခြမ်းစိတ်ဖြာခြင်း - function calls နှင့် variable assignment ၏အသေးစိတ်ရှင်းပြချက်

PHP7 ၏နောက်ခံယန္တရား၏နက်ရှိုင်းသောခွဲခြမ်းစိတ်ဖြာခြင်း - function calls နှင့် variable assignment ၏အသေးစိတ်ရှင်းပြချက်

gitbox 2025-06-15

1 ။ PHP7 ၏နောက်ခံဖွံ့ဖြိုးတိုးတက်မှုနိယာမအပေါ်နက်နက်ရှိုင်းရှိုင်းလေ့လာမှု

ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောပရိုဂရမ်ဘာသာစကားတစ်ခုအနေဖြင့် PHP ၏အခြေခံလည်ပတ်မှုယန္တရားသည် developer များ၏အာရုံစူးစိုက်မှုကိုအမြဲအာရုံစိုက်သည်။ ဤဆောင်းပါးသည် PHP7 ၏အခြေခံဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာစည်းမျဉ်းများကိုအသေးစိတ်ဖော်ပြရန်နှင့် function calls နှင့် variable များကိုအကောင်အထည်ဖော်ရန်အာရုံစိုက်မည်။

2 ။ function ကိုခေါ်ဆိုမှုယန္တရား

2.1 ခေါ်ဆိုမှု stack

PHP7 တွင် Function ခေါ်ဆိုမှုများကိုခေါ်ဆိုမှု stack မှတဆင့်စီမံခန့်ခွဲသည်။ ခေါ်ဆိုမှု stack သည် function name နှင့် parametersters ကဲ့သို့သော function name တစ်ခုစီတွင်သက်ဆိုင်ရာသတင်းအချက်အလက်များကိုချွေတာရန်နောက်ဆုံးပေါ် - ပထမ ဦး ဆုံး (lifo) ဒေတာတည်ဆောက်ပုံဖြစ်သည်။ လုပ်ဆောင်ချက်အရလုပ်ဆောင်ပြီးနောက်သက်ဆိုင်ရာသတင်းအချက်အလက်များကို stack ထိပ်မှဖယ်ရှားပစ်လိမ့်မည်။

ဤတွင် function call ၏ဥပမာတစ်ခုမှာ -

 
function foo($a, $b) {
   return $a + $b;
}
$result = foo(1, 2);

Execute တွင်ခေါ်ဆိုမှု stack stack stack: call stack သည်ပရိုဂရမ်၏အစတွင်အချည်းနှီးဖြစ်သည်။ foo function ကိုခေါ်ဆိုသည့်အခါ function ကိုအချက်အလက်များကို stack ထိပ်သို့တွန်းပို့သည်။ လုပ်ဆောင်ချက်ပြီးသွားရင်သတင်းအချက်အလက်တွေဟာ stack ထိပ်ကနေပေါ်လာပြီးရလဒ်ကိုပြန်ပို့လိုက်တယ်။

2.2 အမှန်တကယ် parameter ဖြန့်ဝေရေးယန္တရား

PHP7 function ခေါ်ဆိုမှုများသည်လက်တွေ့ကျတဲ့အငြင်းအခုံပေးပို့မှုနည်းလမ်းများကိုထောက်ပံ့သည်။

  • Value Transfer - အမှန်တကယ် parameter ၏တန်ဖိုးကိုတရားဝင် parameter သို့ကူးယူပါ။ function အတွင်းရှိတရားဝင် parameter ကိုပြုပြင်မွမ်းမံခြင်းကအမှန်တကယ် parameter ကိုမထိခိုက်ပါ။
  • Reference Pass - အမှန်တကယ် parameter ၏လိပ်စာကိုဖြတ်သန်းပါ။ တရားဝင် parameter ၏ပြုပြင်မွမ်းမံခြင်းကိုအမှန်တကယ် parameter သည်ထင်ဟပ်လိမ့်မည်။
  • ပုံမှန် parametersters: invoked အခါ parameters တွေကိုမဖြတ်ပါကပုံမှန်တန်ဖိုးကိုအသုံးပြုသည်။
  • variable parameters တွေကို - မသေချာမရေရာသေးသေးလေးအရေအတွက်ကိုထောက်ပံ့သည်။

ကိုးကားစရာ Passion ဥပမာ:

 
function foo(&$a) {
   $a = 2;
}
$b = 1;
foo($b);
echo $b; // ထုတ်လုပ်ခြင်း2

function foo သည် $ b ၏လိပ်စာကိုလက်ခံရရှိသည်။ ထို့ကြောင့်တရားဝင် parameters များသည်ပုံမှန် parameters များပြုပြင်မွမ်းမံခြင်းသည်အမှန်တကယ် parameters များကိုတိုက်ရိုက်အကျိုးသက်ရောက်သည်။

3 ။ variable ကို assignment ယန္တရား

PHP7 တွင် variable တစ်ခုတွင်သတ်မှတ်ခြင်းသည်မှတ်ဥာဏ်ကိုစီမံရန်ရည်ညွှန်းရေတွက်ခြင်းကိုအသုံးပြုသည်။ ကိုးကားစရာအရေအတွက်သည် variable တစ်ခုကိုရည်ညွှန်းထားသောအကြိမ်အရေအတွက်ကိုမှတ်တမ်းတင်ထားသည်။ အရေအတွက်သည်သုညသို့ပြန်လာသည့်အခါသက်ဆိုင်ရာမှတ်ဉာဏ်ကိုထုတ်ပြန်သည်။

3.1 တာ 0 န်စစ်ဆင်ရေး

တန်ဖိုးများကိုသတ်မှတ်သည့်အခါ variable ကိုကိုးကားထားသောအရေအတွက်သည် 1 ဖြစ်လျှင် variable တန်ဖိုးကိုတိုက်ရိုက်အသစ်ပြောင်းရမည်။ အကယ်. ၎င်းသည် 1 ထက်ကြီးပါကမူရင်းတန်ဖိုးကိုကူးယူပြီးတန်ဖိုးအသစ်ကိုသတ်မှတ်ပြီးမှတ်ဉာဏ်အဟောင်းကိုအမှိုက်သရိုက်များဖြင့်ပြုလုပ်လိမ့်မည်။

နမူနာကုဒ်:

 
$a = 1;
$b = $a;
$c = &$a;
echo $a, $b, $c; // ထုတ်လုပ်ခြင်း111
$a = 2;
echo $a, $b, $c; // ထုတ်လုပ်ခြင်း212

$ B, $ a နှင့် $ ခ-bet ကိုတူညီသောဒေတာကူးယူရန် $ ခညွှန်ပြသောအခါ; $ c သည် $ ကရည်ညွှန်းသည်။ $ a ကိုပြုပြင်သည့်အခါ $ c ကိုတစ်ပြိုင်တည်းညှိနှိုင်းသည်။

3.2 အမှိုက်များပြန်လည်ပြုပြင်ခြင်းယန္တရား

ကိုးကားစရာရေတွက်ခြင်းသည်စက်ဝိုင်းကိုးကားချက်များကိုမဖြေရှင်းနိုင်ပါ။ ဤအဆုံးတွင် PHP7 သည် tag-clean barbage collection ယန္တရားကိုမိတ်ဆက်ပေးသည်။

variable ကိုကိုးကားအရေအတွက်သုညဖြစ်သည့်အခါ၎င်းကိုအမှိုက်သရိုက်များအဖြစ်မှတ်သားလိမ့်မည်။ အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည် Root rols set ကိုဖြတ်သန်းခြင်း (ဥပမာကမ္ဘာလုံးဆိုင်ရာ variable များနှင့်ဒေသခံ variable များ) ကိုဖြတ်သန်းခြင်းဖြင့်ရောက်ရှိနိုင်သောအရာများကိုအမှတ်အသားပြုသည်။ အမှတ်အသားမရှိသောအမှိုက်များသည်အမှိုက်သရိုက်ဖြစ်ပြီး၎င်းကိုမှတ်ဉာဏ်လွတ်စေသည်။

စက်ဝိုင်းရည်ညွှန်းခြင်းဥပမာ -

 
class A {
   public $b;
}
class B {
   public $a;
}
$a = new A;
$b = new B;
$a->b = $b;
$b->a = $a;
unset($a, $b);

ဤတွင်ဒေါ်လာ A နှင့် $ B သည်တစ် ဦး ကိုတစ် ဦး ရည်ညွှန်းသည်။ unset ကွပ်မျက်ခံရပြီးနောက်အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည်လက်လှမ်းမမီသောမြို့ပတ်ရထားကိုးကားချက်များကိုရှာဖွေတွေ့ရှိပြီးမှတ်ဥာဏ်ကိုအချိန်မီပြန်လည်အသုံးပြုသည်။

4 ။ နိဂုံးချုပ်

PHP7 ၏နောက်ခံဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာအခြေခံမူများကိုနက်နက်ရှိုင်းရှိုင်းနားလည်မှုသည်အထူးသဖြင့် function call နှင့် variable assignment ယန္တရားသည် PHP ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာစွမ်းဆောင်ရည်နှင့်စွမ်းဆောင်ရည်ပိုမိုကောင်းမွန်စေရန်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည်ခေါ်ဆိုမှု stack ၏စီမံခန့်ခွဲမှု, အမှန်တကယ် parameter ဖြန့်ဝေနည်းလမ်းများ, ရည်ညွှန်းရေတွက်ခြင်းနှင့်အမှိုက်သရိုက်များစုဆောင်းခြင်းယန္တရားကိုအဓိကထားသည်။