PHP-এর Magic Methods হল কিছু বিশেষ মেথড যেগুলো __
(double underscore) দিয়ে শুরু হয় এবং PHP নিজে থেকে নির্দিষ্ট কন্ডিশনে এগুলো কল করে। নিচে সবগুলো গুরুত্বপূর্ণ Magic Method-এর বিস্তারিত ব্যাখ্যা দেওয়া হলো:
1. __construct()
ব্যাখ্যা: ক্লাস থেকে অবজেক্ট তৈরি হওয়ার সাথে সাথে এই মেথডটি অটোমেটিক কল হয়। এটা constructor হিসেবে কাজ করে।
class MyClass {
function __construct() {
echo "Object created";
}
}
$obj = new MyClass();
2. __destruct()
ব্যাখ্যা: অবজেক্ট ধ্বংস হওয়ার সময় (script শেষ হলে বা unset()
করলে) চালু হয়।
class MyClass {
function __destruct() {
echo "Object destroyed";
}
}
3. __call($name, $arguments)
ব্যাখ্যা: যখন inaccessible বা non-existing মেথড কল করা হয় তখন এটি চালু হয়।
class MyClass {
function __call($name, $arguments) {
echo "Method $name does not exist";
}
}
$obj = new MyClass();
$obj->missingMethod();
4. __callStatic($name, $arguments)
ব্যাখ্যা: একই কাজ স্ট্যাটিক মেথডের জন্য করে।
class MyClass {
public static function __callStatic($name, $arguments) {
echo "Static method $name not found";
}
}
MyClass::missingStatic();
5. __get($property)
ব্যাখ্যা: inaccessible বা non-existing property রিড করার সময় কল হয়।
class MyClass {
function __get($name) {
return "Property $name not found";
}
}
$obj = new MyClass();
echo $obj->name;
6. __set($property, $value)
ব্যাখ্যা: inaccessible বা non-existing property-তে ভ্যালু অ্যাসাইন করলে কল হয়।
class MyClass {
function __set($name, $value) {
echo "Setting $name to $value";
}
}
$obj = new MyClass();
$obj->name = "PHP";
7. __isset($property)
ব্যাখ্যা: isset()
বা empty()
ব্যবহার করলে এটি কল হয়।
class MyClass {
function __isset($name) {
return false;
}
}
$obj = new MyClass();
isset($obj->name); // false
8. __unset($property)
ব্যাখ্যা: unset()
করলে এটি কল হয়।
class MyClass {
function __unset($name) {
echo "Unsetting $name";
}
}
$obj = new MyClass();
unset($obj->name);
9. __sleep()
ব্যাখ্যা: অবজেক্ট serialize()
করার আগে চালু হয়, কোন properties serialize হবে তা নির্ধারণ করে।
class MyClass {
public $name = "PHP";
function __sleep() {
return ["name"];
}
}
10. __wakeup()
ব্যাখ্যা: unserialize()
করার পরে চালু হয়।
class MyClass {
function __wakeup() {
echo "Object unserialized";
}
}
11. __serialize()
ব্যাখ্যা: PHP 7.4+ এ অবজেক্ট কাস্টমভাবে serialize করার জন্য।
class MyClass {
public function __serialize(): array {
return [];
}
}
12. __unserialize()
ব্যাখ্যা: PHP 7.4+ এ কাস্টমভাবে unserialize করার জন্য।
class MyClass {
public function __unserialize(array $data): void {
// Restore data
}
}
13. __toString()
ব্যাখ্যা: অবজেক্টকে string হিসেবে ব্যবহার করলে কল হয়।
class MyClass {
function __toString() {
return "Object as string";
}
}
$obj = new MyClass();
echo $obj;
14. __invoke()
ব্যাখ্যা: অবজেক্টকে ফাংশনের মতো কল করলে এটি চালু হয়।
class MyClass {
function __invoke() {
echo "Object invoked as function";
}
}
$obj = new MyClass();
$obj();
15. __set_state($array)
ব্যাখ্যা: var_export()
ব্যবহার করলে অবজেক্ট recreate করতে ব্যবহৃত হয়।
class MyClass {
public static function __set_state($array) {
$obj = new self();
return $obj;
}
}
16. __clone()
ব্যাখ্যা: অবজেক্ট ক্লোন করার সময় চালু হয়।
class MyClass {
function __clone() {
echo "Object cloned";
}
}
$obj = new MyClass();
$copy = clone $obj;
17. __debugInfo()
ব্যাখ্যা: var_dump()
ব্যবহারে কী দেখাবে তা নির্ধারণ করে।
class MyClass {
private $data = "secret";
function __debugInfo() {
return ["info" => "custom debug info"];
}
}
$obj = new MyClass();
var_dump($obj);
এই ছিল PHP-এর সকল Magic Method-এর বিস্তারিত ব্যাখ্যা। এগুলো প্রফেশনাল ও ক্লিন কোড লেখার জন্য খুবই গুরুত্বপূর্ণ।
Top comments (0)