(PHP 5 >= 5.1.2)
spl_autoload_register — ثبت توابع داده شده به عنوان پیادهسازی __autoload()
ثبت تابع با استفاده از پشته __autoload فراهم شده spl. اگر پشته فعال نشده باشد فعال خواهد شد.
اگر کد شما تابع __autoload داشته باشد این تابع باید به صورت صریح در پشته __autoload ثبت شود. این کار برای جایگزینی موثر کاشه موتور توسط spl_autoload_register() برای تابع __autoload به کمک spl_autoload() یا spl_autoload_call() است.
اگر باید جندین تابع autoload وجود داشته باشد spl_autoload_register() این امکان را فراهم می:ند. به شکل موثری صف توابع autoload ساخته میشود و به ترتیب تعریف آنها اجرا خواهد شد . به صورت دیگر __autoload() تنها یکبار تعریف میشود.
تابع autoload برای ثبت. اگر پارامتر فراهم نشده باشد پیاده سازی پیشفرض spl_autoload() ثبت خواهد شد.
این پارامتر ایجاد استثنا توسط spl_autoload_register() در هنگام خطا را مشخص میکند.
اگر درست باشد spl_autoload_register() autoloader را در پشته autoload به صورت پیش الصاق میکند .
Returns TRUE on success or FALSE on failure.
Version | Description |
---|---|
5.3.0 | پشتیبانی از فضای نام اضافه شد. |
5.3.0 | پارامتر prepend اضافه شد. |
Example #1 مثال spl_autoload_register()
<?php
namespace Foobar;
class Foo {
static public function test($name) {
print '[['. $name .']]';
}
}
spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
new InexistentClass;
?>
The above example will output something similar to:
[[Foobar\InexistentClass]] Fatal error: Class 'Foobar\InexistentClass' not found in ...