လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Get_class မှတစ်ဆင့်မိဘများ၏အတန်းအမည်ကိုမည်သို့ရယူရမည်နည်း။ အသေးစိတ်အဆင့်များနှင့်ဥပမာအားဖြင့်ခွဲခြမ်းစိတ်ဖြာခြင်း

Get_class မှတစ်ဆင့်မိဘများ၏အတန်းအမည်ကိုမည်သို့ရယူရမည်နည်း။ အသေးစိတ်အဆင့်များနှင့်ဥပမာအားဖြင့်ခွဲခြမ်းစိတ်ဖြာခြင်း

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// နိဒါန်း(ဆောင်းပါး၏အကြောင်းအရာနှင့်အတူလုပ်ဖို့ဘာမျှမရှိပါတယ်)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒါကဥပမာနိဒါန်းဖြစ်ပါတယ်,မည်သည့်သရုပ်ပြစာသားသို့မဟုတ်အစီအစဉ် output ကိုဖြစ်နိုင်ပါတယ်。&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောက်ဖော်ပြပါအချက်များကိုအလျားလိုက်လိုင်းများဖြင့်စာသား၏အကြောင်းအရာများနှင့်ကွဲကွာသွားလိမ့်မည်။。&lt;hr&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// စာသားကိုစတင်ပါ</span></span><span>
<span class="hljs-comment">/*
ဘဲှ့: ဘယ်လိုဖြတ်သန်းရမလဲget_classအရာဝတ်ထု၏မိဘအတန်းအစားအမည်ကိုရယူပါ?အသေးစိတ်အဆင့်များနှင့်ဥပမာအားဖြင့်ခွဲခြမ်းစိတ်ဖြာခြင်း

တည်နေPHPဖွံ့ဖြိုးမှုအောက်မှာ,အရာဝတ်ထုတစ်ခုပိုင်ဆိုင်သည့်အတန်းသို့မဟုတ်မိဘအဆင့်အချက်အလက်များကိုကျွန်ုပ်တို့မကြာခဏဆုံးဖြတ်ရန်လိုအပ်သည်။,အမျိုးအစားတရားသဖြင့်စီရင်သည်、dynamically ခေါ်ဆိုမှုနည်းလမ်းများသို့မဟုတ် debug。ဤဆောင်းပါးသည်၎င်းကိုအသေးစိတ်အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပါမည်PHP၏get_class函数和相关方法အရာဝတ်ထု၏မိဘအတန်းအစားအမည်ကိုရယူပါ,နှင့်ဥပမာအားဖြင့်သုံးသပ်ချက်မှတဆင့်နားလည်ကူညီပေးပါ。
*/</span>

</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Animal</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">makeSound</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Some generic sound"</span></span><span>;
    }
}

</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Dog</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">Animal</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">makeSound</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Bark"</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// aDogကန့်ကွက်</span></span><span>
</span><span><span class="hljs-variable">$dog</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Dog</span></span><span>();

</span><span><span class="hljs-comment">// ပထမခြေလှမ်း:获取ကန့်ကွက်၏类名</span></span><span>
</span><span><span class="hljs-variable">$className</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_class</span></span><span>(</span><span><span class="hljs-variable">$dog</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ကန့်ကွက်所属类名: "</span></span><span> . </span><span><span class="hljs-variable">$className</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း Dog</span></span><span>

</span><span><span class="hljs-comment">// အဆင့် 2:အရာဝတ်ထု၏မိဘအတန်းအစားအမည်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$parentClassName</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_parent_class</span></span><span>(</span><span><span class="hljs-variable">$dog</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ကန့်ကွက်父类名: "</span></span><span> . </span><span><span class="hljs-variable">$parentClassName</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း Animal</span></span><span>

</span><span><span class="hljs-comment">// အဆင့် 3:အခြေအနေများအပေါ် အခြေခံ. မိဘ၏သတင်းအချက်အလက်ကိုသုံးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$parentClassName</span></span><span> === </span><span><span class="hljs-string">'Animal'</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"该ကန့်ကွက်是Animal类၏子类,ခေါ်လို့ရပါတယ်Animal中定义၏方法。&lt;br&gt;"</span></span><span>;
}

</span><span><span class="hljs-comment">// အဆင့် 4:နောက်ထပ်လျှောက်လွှာ——မိဘအတန်းအစားအမည်ကိုရောင်ပြန်ဟပ်ခြင်းဖြင့်နည်းလမ်းစာရင်းကိုရယူပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$parentClassName</span></span><span>) {
    </span><span><span class="hljs-variable">$methods</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_class_methods</span></span><span>(</span><span><span class="hljs-variable">$parentClassName</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"မိဘအတန်းအစားနည်းလမ်းများစာရင်း: &lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;ul&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$methods</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$method</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;li&gt;"</span></span><span> . </span><span><span class="hljs-variable">$method</span></span><span> . </span><span><span class="hljs-string">"&lt;/li&gt;"</span></span><span>;
    }
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;/ul&gt;"</span></span><span>;
}

<span class="hljs-comment">/*
ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အကျဉ်းချုပ်:

1. get_class() 函数用于获取ကန့်ကွက်所属၏当前类名。
2. get_parent_class() 函数用于获取ကန့်ကွက်၏直接父类名,မိဘအတန်းမရှိလျှင်ပြန်လာပါ false。
3. မိဘအတန်းအစားအမည်ဖြင့်,ကျနော်တို့ကနောက်ထပ်သုံးနိုင်ပါတယ် PHP ၏反射函数(ကဲ့သို့ get_class_methods)获取父类၏方法信息。
4. ဤနည်းလမ်းသည် debugging များအတွက်သင့်လျော်သည်、动态调用方法以及构建面向ကန့်ကွက်၏工具类သို့မဟုတ်框架。

မှတ်သားရန်အရာ:

- get_parent_class() တိုက်ရိုက်မိဘအတန်းအစားကိုသာပြန်လာပါ,不会返回祖父类သို့မဟုတ်更高级别၏父类。
- ကဲ့သို့果需要判断ကန့်ကွက်是否继承自某个特定类,ကိုလည်းအသုံးပြုနိုင်ပါတယ် `is_a($object, 'ClassName')` သို့မဟုတ် `instanceof` တယ်လီဖုန်းဆက်သွယ်ပေးသူအမျိုးသမီး。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>