အိုကေ, မင်းဘာမေးလဲဆိုတာနားလည်တယ်။ PHP-Related ဆောင်းပါးတစ်ပုဒ်ရေးရန်သင်၏ညွှန်ကြားချက်များကိုကျွန်ုပ်လိုက်နာပါမည်။ ယခင်အပိုင်း, ခန္ဓာကိုယ်နှင့်အမြီးကိုအလျားလိုက်လိုင်းများဖြင့်ခွဲခြားထားသည်။ ဆောင်းပါး၏ပါ 0 င်မှုသည် class_alias နှင့် class အမွေအရဆက်ဆံရေးကိုအာရုံစိုက်ပြီးတိုက်ရိုက်အဆုံးသတ်ထားသည်။ ဤတွင်ဥပမာဥပမာတစ်ခုရှိသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Pre-ရှိပြီးသားဆီလျှော်အကြောင်းအရာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖတ်ရှုဖို့ကြိုဆိုပါတယ် PHP နည်းပညာမျှဝေခြင်း!အချို့စူးစမ်းလေ့လာကြပါစို့ PHP အဆင့်မြင့်အင်္ဂါရပ်များ。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># class_alias function ကိုနှင့် class အမွေအကြားဆက်နွယ်မှုကဘာလဲ?In-depth ခွဲခြမ်းစိတ်ဖြာရှင်းလင်းချက်</span></span><span>
တည်နေ PHP အလယ်ပိုင်း,`class_alias` function နှင့် class ကိုအမွေဥစ်စာယန္တရားများသည်လူတန်းစားပြန်လည်သုံးသပ်ခြင်းနှင့်တိုးချဲ့ခြင်းနှင့်နီးကပ်စွာဆက်စပ်နေသည်။,သို့သော်၎င်းတို့၏အသုံးပြုမှုနှင့်အကောင်အထည်ဖော်မှုနည်းလမ်းများသိသိသာသာကွဲပြားခြားနားသည်。သူတို့ရဲ့ဆက်ဆံရေးကိုနားလည်,တည်ဆောက်ရန်ထိန်းသိမ်းရန်、အရွယ်အစားမပါသော PHP လျှောက်လွှာအလွန်အရေးကြီးပါသည်。
</span><span><span class="hljs-comment">## 1. class_alias နိဒါန်းနိဒါန်း</span></span><span>
`class_alias` ဟုတ်ကဲ့ PHP ထောက်ပံ့ပေးတဲ့ built-in function ကို,တစ် ဦး အတန်းများအတွက် alias ကိုဖန်တီးရန်အသုံးပြုခဲ့သည်。အဆိုပါ syntax အောက်ပါအတိုင်းဖြစ်ပါတယ်:
```php
</span><span><span class="hljs-title function_ invoke__">class_alias</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$original</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$alias</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$autoload</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ မူရင်း - မူရင်းအတန်းအမည်။
$ alias : alias အသစ်။
$ autoload : အလိုအလျောက်တင်ဆောင်ခြင်းရှိမရှိ။
ဥပမာ -
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Foo</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">sayHello</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello from Foo!"</span></span><span>;
}
}
</span><span><span class="hljs-title function_ invoke__">class_alias</span></span><span>(</span><span><span class="hljs-string">'Foo'</span></span><span>, </span><span><span class="hljs-string">'Bar'</span></span><span>);
</span><span><span class="hljs-variable">$bar</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Bar</span></span><span>();
</span><span><span class="hljs-variable">$bar</span></span><span>-></span><span><span class="hljs-title function_ invoke__">sayHello</span></span><span>(); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "Hello from Foo!"</span></span><span>
</span></span>
အထက်ပါဥပမာမှတွေ့မြင်နိုင်သည့်အတိုင်း class_alias သည် အတန်းအသစ်တစ်ခုကိုမဖန်တီးနိုင်ပါ။ ထို့ကြောင့် alias နှင့်အတူ instantiated အရာဝတ္ထုများကိုမူရင်းအတန်းအစားများနှင့်အတူတူပင်အကျိုးရှိသည်။
Class အမွေသည်အတန်းတစ်ခုအားအခြားအတန်းအစားတစ်ခုမှရယူရန်ခွင့်ပြုသည်, ဥပမာ -
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">ParentClass</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">greet</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello from ParentClass!"</span></span><span>;
}
}
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">ChildClass</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">ParentClass</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">greet</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello from ChildClass!"</span></span><span>;
}
}
</span><span><span class="hljs-variable">$child</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">ChildClass</span></span><span>();
</span><span><span class="hljs-variable">$child</span></span><span>-></span><span><span class="hljs-title function_ invoke__">greet</span></span><span>(); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "Hello from ChildClass!"</span></span><span>
</span></span>
ဤတွင် ကလေးလက်ကလ်ကလပ် သည်မိဘအတန်း၏ဂုဏ်သတ္တိများနှင့်နည်းလမ်းများရှိသောအတန်းအသစ်တစ်ခုဖြစ်သည်။ Class_alias နှင့်မတူသည်မှာအမွေများသည်အဆင်သင့်ဖြစ်သည့်အမျိုးအစားအသစ်များကိုအမျိုးအစားစစ်ဆေးနေသည့်အမျိုးအစားများကိုစစ်ဆေးနိုင်သည့်အစစ်အမှန်အမျိုးအစားများကိုထုတ်လုပ်သည်။
သီးခြားထင်ရှားသော | class_alias | အတန်းအမွေဆက် |
---|---|---|
အမျိုးအစားတစ်ခုဖန်တီးပါ | အတန်းအသစ်များမဖန်တီးပါနှင့်, alias ကိုဖန်တီးပါ | အသစ်တစ်ခု subclass အမျိုးအစားဖန်တီးပါ |
နည်းလမ်းလွှမ်းခြုံ | အလွန်ခက်ခဲခြင်းမရှိပါ, alias မူရင်းအတန်းအစားနှင့်အတူတူပင်ဖြစ်ကြသည် | မိဘအတန်းအစားနည်းစနစ်များကို override လုပ်နိုင်သည် |
စစ်ဆေးပါ | Instanceof က alias သည်မူရင်းအတန်းအစားနှင့်အတူတူဖြစ်သည်ဟုယုံကြည်သည် | Instanceof သည် မိဘနှင့်ကလေးအတန်းများကိုခွဲခြားနိုင်သည် |
ကြည့်ရှုပါ | အဟောင်းကုဒ်နှင့်အတူ naming နှင့်သဟဇာတရိုးရှင်း | လုပ်ငန်းဆောင်တာများကိုတိုးချဲ့ပြီး polymorphism ကိုအကောင်အထည်ဖော်ရန် |
ဒီနှိုင်းယှဉ်ချက်ကနေမြင်နိုင်တယ် -
ဆက်သွယ်ရန် - နှစ် ဦး စလုံးသည်မူရင်းလူတန်းစား၏လုပ်ဆောင်မှုများကိုအခြားနည်းဖြင့်အသုံးပြုခွင့်ပြုနိုင်သည်။ Class_alias သည် စာကြည့်တိုက်အဆင့်မြှင့်တင်မှုများတွင်နောက်ပြန်လိုက်ဖက်ခြင်းကဲ့သို့သော "အမွေဆက်ခံ" အသုံးပြုမှုကိုသွယ်ဝိုက်ကူညီနိုင်သည်။
ကွာခြားချက် - Class_alias သည် အတန်းအမျိုးအစားအသစ်များမထုတ်လုပ်နိုင်ပါ။
သင့်တွင်အသစ်သော Class Oldly OffloLogger တွင် system အသစ်တွင် 0 င်ရောက်လိုသော Logger ကို အသုံးပြုလိုသောဟောင်းနွမ်းနေသော OldLoLogger ရှိသော်လည်းရှိပြီးသားကုဒ်ကိုမပြောင်းလဲလိုပါ။
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">OldLogger</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">log</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$msg</span></span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$msg</span></span><span>;
}
}
</span><span><span class="hljs-comment">// အသုံးပြု class_alias သဟဇာတနေပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">class_alias</span></span><span>(</span><span><span class="hljs-string">'OldLogger'</span></span><span>, </span><span><span class="hljs-string">'Logger'</span></span><span>);
</span><span><span class="hljs-variable">$logger</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Logger</span></span><span>();
</span><span><span class="hljs-variable">$logger</span></span><span>-></span><span><span class="hljs-title function_ invoke__">log</span></span><span>(</span><span><span class="hljs-string">"这ဟုတ်ကဲ့日志信息"</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "这ဟုတ်ကဲ့日志信息"</span></span><span>
</span></span>
အမွေဆက်ခံမှုကိုသုံးပြီး:
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Logger</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">OldLogger</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">log</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$msg</span></span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"[LOG]: "</span></span><span> . </span><span><span class="hljs-variable">$msg</span></span><span>;
}
}
</span><span><span class="hljs-variable">$logger</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Logger</span></span><span>();
</span><span><span class="hljs-variable">$logger</span></span><span>-></span><span><span class="hljs-title function_ invoke__">log</span></span><span>(</span><span><span class="hljs-string">"这ဟုတ်ကဲ့日志信息"</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "[LOG]: 这ဟုတ်ကဲ့日志信息"</span></span><span>
</span></span>
၎င်းကိုအမွေဆက်ခံနိုင်သည့်အမွေဆက်ခံနိုင်သည်ကိုတွေ့မြင်နိုင်သည် ။
Class_alias - အတန်းများအတွက် alias ကိုဖန်တီးရန်အသုံးပြုသည်, တည်ဆဲအတန်းများကိုထိန်းသိမ်းထားခြင်း,
Class အမွေဆက်ခံခြင်း - အတန်းလုပ်ငန်းများကိုတိုးချဲ့ရန်,
ဆက်သွယ်ရန် - နှစ် ဦး စလုံးသည်အတန်းများကိုအခြားနည်းလမ်းဖြင့်အသုံးပြုနိုင်သော်လည်းမတူညီသောရည်ရွယ်ချက်များနှင့်အကျိုးသက်ရောက်မှုများဖြင့်ဖြစ်သည်။
THE နှစ်ခုအကြားကွဲပြားခြားနားမှုများနှင့်ဆက်သွယ်မှုများကိုနားလည်ခြင်းသည် PHP applications များကိုဒီဇိုင်းဆွဲသည့်အခါနည်းတူနည်းဗျူဟာကိုရွေးချယ်ရန်နှင့်၎င်းကိုသဟဇာတဖြစ်အောင်လုပ်ခြင်းကိုရှာဖွေရန်အထောက်အကူပြုနိုင်သည်။
<hr> <? PHP // MPP // end echo "ဒီဆောင်းပါးကဒီမှာအဆုံးသတ်လိုက်ပြီ။ > <span></span>