__callStatic মেথড
__callStatic মেথডটি PHP-তে একটি ম্যাজিক মেথড, যা স্বয়ংক্রিয়ভাবে কল হয় যখন কোনও অস্তিত্বহীন বা অ্যাক্সেসযোগ্য নয় এমন স্ট্যাটিক মেথড কল করার চেষ্টা করা হয়। এটি প্রথম প্যারামিটার হিসেবে কল করা মেথডের নাম গ্রহণ করে এবং দ্বিতীয় প্যারামিটার হিসেবে প্রেরিত আর্গুমেন্টগুলির একটি অ্যারে গ্রহণ করে।
সিনট্যাক্স
public static function __callStatic(string $name, array $arguments);
উদাহরণ
আসুন একটি ক্লাস তৈরি করি __callStatic মেথড সহ এবং একটি অস্তিত্বহীন স্ট্যাটিক মেথড কল করার চেষ্টা করি:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Called static method '$name' with arguments: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
কোড 실행ের ফলাফল:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
উদাহরণ
আসুন বিভিন্ন ধরনের অবজেক্ট তৈরি করার জন্য একটি সাধারণ ফ্যাসাড বাস্তবায়ন করি:
<?php
class Factory {
public static function __callStatic($name, $args) {
if (strpos($name, 'create') === 0) {
$className = substr($name, 6);
return new $className(...$args);
}
throw new Exception("Method $name not found");
}
}
class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>
কোড 실행ের ফলাফল:
true