পিএইচপি ম্যাজিক মেথডসের ব্যবহার ও গুরুত্ব সহজ বাংলায় | PHP: Magic Methods

Abu Sayed
2 min readFeb 18, 2024

--

পিএইচপিতে ম্যাজিক মেথডসের তালিকা এবং ব্যবহার সম্পর্কে বাংলায় বিস্তারিত আলোচনা। ( PHP: Magic Methods )

পিএইচপি ম্যাজিক মেথডসের ব্যবহার ও গুরুত্ব সহজ বাংলায় | PHP: Magic Methods

প্রিয় পাঠক,

PHP এ ম্যাজিক মেথডস হল এমন পূর্ব-ডিফাইনড মেথডস যা ক্লাসের মধ্যে অটোমেটিকভাবে কল হয়। এগুলো হল:

__construct() — ক্লাস ইনস্ট্যান্সিয়েট করার সময় কল হয়।

__destruct() — অবজেক্ট ডিস্ট্রয় হওয়ার সময় কল হয়।

__call() — অস্তিত্বহীন মেথড কল করা হলে কল হয়।

__callStatic() — স্ট্যাটিক অস্তিত্বহীন মেথড কল করা হলে কল হয়।

__get() — অ্যাক্সেসর মেথড কল হয়।

__set() — ম্যাজিক সেটর মেথড কল হয়।

__isset() — isset() চেক করা হলে কল হয়।

__unset() — ভেরিয়েবল অপসারণ করা হলে কল হয়।

__sleep() — অবজেক্ট সিরিয়ালাইজ করার সময় কল হয়।

__wakeup() — অবজেক্ট আনসিরিয়ালাইজ করার সময় কল হয়।

__toString() — অবজেক্ট কে স্ট্রিং হিসেবে কাস্ট করা হলে কল হয়।

__invoke() — অবজেক্ট কে ফাংশন হিসেবে কল করা হলে কল হয়।

__set_state() — var_export() দিয়ে এক্সপোর্ট করার সময় কল হয়।

__clone() — অবজেক্ট ক্লোন করা হলে কল হয়।

__debugInfo() — অবজেক্ট ডিবাগ করার সময় কল হয়।

ম্যাজিক মেথডগুলির ব্যবহার

ম্যাজিক মেথডগুলি বিভিন্ন ক্ষেত্রে ব্যবহার করা যেতে পারে, যেমন:

  • বস্তুর জীবনচক্র পরিচালনা করা: __construct() এবং __destruct() মেথডগুলি যথাক্রমে বস্তু তৈরি হওয়া এবং ধ্বংস হওয়ার সময় কাস্টম আচরণ নির্দেশ করে।
  • অ্যাক্সেসর এবং মিউটেটর মেথডগুলি প্রতিস্থাপন করা: __get() এবং __set() মেথডগুলি বৈশিষ্ট্যগুলিকে অ্যাক্সেস করতে এবং সেট করতে ব্যবহার করা যেতে পারে, যখন __isset() এবং __unset() মেথডগুলি বৈশিষ্ট্যের অস্তিত্ব পরীক্ষা করতে এবং মুছে ফেলতে ব্যবহার করা যেতে পারে।
  • বিশেষ আচরণকে লক করুন: __call() এবং __callStatic() মেথডগুলি অদৃশ্য পদ্ধতিগুলিকে কল করার এবং এটি কীভাবে পরিচালনা করবেন তা নির্ধারণ করার জন্য ব্যবহার করা যেতে পারে।
  • ক্রমাঙ্কন এবং ডিবাগিংকে সহজলভ্য করা: __toString() মেথডটি বস্তুর একটি স্ট্রিং উপস্থাপনা প্রদান করে, যখন __debugInfo() মেথডটি ডিবাগিংয়ের সময় বস্তুর তথ্য প্রদান করে।

উদাহরণ

__construct() মেথডের উদাহরণ:

class Person {
private $name;
private $age;
    public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}

__get() মেথডের উদাহরণ:

class Person {
private $name;
private $age;
    public function __get(string $property) {
if (property_exists($this, $property)) {
return $this->$property;
}
return null;
}
}

__call() মেথডের উদাহরণ:

class Person {
public function __call(string $method, array $args) {
if (method_exists($this, $method)) {
return $this->$method(...$args);
}
        throw new BadMethodCallException("Method $method does not exist");
}
}

একটি ছোট প্রোগ্রাম

নিম্নলিখিত প্রোগ্রামটি ম্যাজিক মেথডগুলি ব্যবহার করে একটি সহজ ব্যবহারকারী শ্রেণী তৈরি করে:

class User {
private $name;
private $email;
    public function __construct(string $name, string $email) {
$this->name = $name;
$this->email = $email;
}
public function __get(string $property) {
if (property_exists($this, $property)) {
return $this->$property;
}
return null;
}
public function __toString(): string {
return "Name: $this->name, Email: $this->email";
}
}
$user = new User('John Doe', 'john.doe@example.com');echo $user->name; // John Doe
echo "\n";
echo $user; // Name: John Doe, Email: john.doe@example.com

ম্যাজিক মেথডস অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কে সহজ করে তোলে।

--

--

Abu Sayed
Abu Sayed

Written by Abu Sayed

Bangladeshi Full Stack Web Dev, Sys Admin & DevOps Engineer. Skills: Data analysis, SQL, Unity, C#. Python, PHP & Laravel. Me on: bd.linkedin.com/in/imabusayed

No responses yet