spl_autoload_register ဖန်ရှင်
spl_autoload_register ဖန်ရှင်သည် ပေးထားသော လုပ်ဆောင်ချက်ကို အတန်းများ အလိုအလျောက်တင်သွင်းခြင်း နည်းလမ်းအဖြစ် မှတ်ပုံတင်ပေးပါသည်။ PHP သည် မသတ်မှတ်ရသေးသော အတန်းတစ်ခုနှင့် တွေ့သောအခါ၊ ၎င်းသည် မှတ်ပုံတင်ထားသော အလိုအလျောက်တင်သွင်းခြင်း လုပ်ဆောင်ချက်အားလုံးကို အစဉ်လိုက်ခေါ်ယူကာ အတန်း၏အမည်ကို ပေးပို့ပါသည်။ ပထမပိုင်ရှင်မှာ အလိုအလျောက်တင်သွင်းရန် callback-လုပ်ဆောင်ချက်ဖြစ်ပြီး၊ ဒုတိယပိုင်ရှင် (မဖြစ်မနေလိုအပ်ခြင်းမရှိ) မှာ အမှားတစ်ခုဖြစ်ပွားလျှင် ချွင်းချက်ပစ်ရန် ဟုတ်မဟုတ်၊ တတိယပိုင်ရှင် (မဖြစ်မနေလိုအပ်ခြင်းမရှိ) မှာ လုပ်ဆောင်ချက်အား တန်းစီစာရင်း၏အစတွင် ထည့်ရန် ဟုတ်မဟုတ်ဖြစ်ပါသည်။
ဝါကျဖွဲ့ပုံ
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
နမူနာ
အလိုအလျောက်တင်သွင်းခြင်း လုပ်ဆောင်ချက်ကို ရိုးရှင်းစွာ မှတ်ပုံတင်ခြင်း
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// ယခု object များကို ရှင်းလင်းစွာ include မလိုဘဲ ဖန်တီးနိုင်ပါသည်
$obj = new MyClass();
?>
နမူနာ
အလိုအလျောက်တင်သွင်းခြင်းအတွက် အမည်မဲ့လုပ်ဆောင်ချက် (anonymous function) အသုံးပြုခြင်း
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
နမူနာ
အလိုအလျောက်တင်သွင်းခြင်း လုပ်ဆောင်ချက်များစွာကို မှတ်ပုံတင်ခြင်း
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // တန်းစီစာရင်း၏အစတွင် ထည့်သွင်းခြင်း
// PHP သည် လုပ်ဆောင်ချက်များကို ဤအစဉ်အတိုင်းခေါ်ယူပါမည်: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
ဤအကြောင်းကိုလည်း ကြည့်ရှုပါ
-
spl_autoload_functions ဖန်ရှင်၊
အလိုအလျောက်တင်သွင်းခြင်း လုပ်ဆောင်ချက်များကို ပြန်ပေးသည့် ဖန်ရှင် -
spl_autoload_unregister ဖန်ရှင်၊
အလိုအလျောက်တင်သွင်းခြင်း လုပ်ဆောင်ချက်ကို ဖျက်သိမ်းသည့် ဖန်ရှင် -
class_exists ဖန်ရှင်၊
အတန်းရှိမရှိ စစ်ဆေးသည့် ဖန်ရှင်