পরিচয়
অন্য পিএইচপি স্ক্রিপ্টে সংজ্ঞায়িত শ্রেণী ব্যবহার করার জন্য, আমরা এটিকে অন্তর্ভুক্ত বা প্রয়োজনীয় বিবৃতি সহ অন্তর্ভুক্ত করতে পারি। যাইহোক, PHP-এর স্বয়ংক্রিয় লোডিং বৈশিষ্ট্যের এমন স্পষ্ট অন্তর্ভুক্তির প্রয়োজন নেই। পরিবর্তে, যখন একটি ক্লাস ব্যবহার করা হয় (তার বস্তু ঘোষণা করার জন্য) পিএইচপি পার্সার স্বয়ংক্রিয়ভাবে লোড করে, যদি এটি spl_autoload_register() এর সাথে নিবন্ধিত হয় ফাংশন এইভাবে যেকোন সংখ্যক ক্লাস নিবন্ধন করা যাবে। এইভাবে পিএইচপি পার্সার ত্রুটি নির্গত করার আগে ক্লাস/ইন্টারফেস লোড করার একটি শেষ সুযোগ পায়।
সিনট্যাক্স
spl_autoload_register(function ($class_name) { include $class_name . '.php'; });
ক্লাসটি তার সংশ্লিষ্ট .php ফাইল থেকে লোড করা হবে যখন এটি প্রথমবার ব্যবহার করা হবে
অটোলোডিং উদাহরণ
এই উদাহরণটি দেখায় যে কীভাবে একটি ক্লাস অটোলোডিংয়ের জন্য নিবন্ধিত হয়
উদাহরণ
<?php spl_autoload_register(function ($class_name) { include $class_name . '.php'; }); $obj = new test1(); $obj2 = new test2(); echo "objects of test1 and test2 class created successfully"; ?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
objects of test1 and test2 class created successfully
যাইহোক, যদি অনুরূপ .php ফাইলে ক্লাস সংজ্ঞা পাওয়া না যায়, তাহলে নিম্নলিখিত ত্রুটি প্রদর্শিত হবে।
Warning: include(): Failed opening 'test10.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 4 PHP Fatal error: Uncaught Error: Class 'test10' not found
ব্যতিক্রম হ্যান্ডলিং সহ অটোলোডিং
উদাহরণ
<?php spl_autoload_register(function($className) { $file = $className . '.php'; if (file_exists($file)) { echo "$file included\n"; include $file; } else { throw new Exception("Unable to load $className."); } }); try { $obj1 = new test1(); $obj2 = new test10(); } catch (Exception $e) { echo $e->getMessage(), "\n"; } ?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
Unable to load test1.