কম্পিউটার টিউটোরিয়াল

PHP ম্যাজিক মেথড


ভূমিকা

PHP-তে ম্যাজিক মেথড হলো কিছু বিশেষ মেথড যা নির্দিষ্ট কাজ সম্পাদনের জন্য তৈরি। এই মেথডগুলো ডাবল আন্ডারস্কোর (__) প্রিফিক্স দিয়ে নামকৃত। এই সকল ফাংশন নাম সংরক্ষিত এবং সংশ্লিষ্ট ম্যাজিক ফাংশনালিটির বাইরে অন্য কোনো উদ্দেশ্যে ব্যবহার করা যায় না। একটি ক্লাসে ম্যাজিক মেথড অবশ্যই পাবলিক ঘোষণা করতে হয়। এই মেথডগুলো ইন্টারসেপ্টার হিসেবে কাজ করে এবং নির্দিষ্ট শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে কল করা হয়।

PHP-তে বর্তমানে নিম্নলিখিত ম্যাজিক মেথডগুলো উপলব্ধ:

__sleep

public __sleep ( void ) : array

ক্লাসের serialize() মেথড চেক করে এতে __sleep() নামে ফাংশন আছে কিনা। থাকলে, সিরিয়ালাইজেশনের আগে সেই ফাংশনটি এক্সিকিউট হয়। এটি একটি অ্যারে রিটার্ন করতে হবে যাতে সেই অবজেক্টের সকল ভেরিয়েবলের নাম থাকে যা সিরিয়ালাইজ করা উচিত।

__wakeup

public __wakeup ( void ) : void

unserialize() মেথড চেক করে __wakeup() নামে ম্যাজিক ফাংশন আছে কিনা। থাকলে, এই ফাংশনটি অবজেক্টের যেকোনো রিসোর্স পুনরায় নির্মাণ করতে পারে।

__serialize

public __serialize ( void ) : array

serialize() মেথড ক্লাসে __serialize() মেথড আছে কিনা চেক করে। থাকলে, সিরিয়ালাইজেশনের আগে এটি এক্সিকিউট হয়। এটি অবশ্যই একটি অ্যাসোসिएটিভ অ্যারে কনস্ট্রাক্ট করে রিটার্ন করতে হবে যা অবজেক্টের সিরিয়ালাইজড ফর্মের কি/ভ্যালু পেয়ার উপস্থাপন করে।

__unserialize

public __unserialize ( array $data ) : void

unserialize() __unserialize() আছে কিনা চেক করে, এবং এটি __serialize() থেকে রিটার্ন করা রিস্টোর করা অ্যারে পাস করা হবে। এটি সেটি থেকে অবজেক্টের প্রপার্টিগুলো যথাযথভাবে রিস্টোর করতে পারে।

__toString

public __toString ( void ) : string

__toString() মেথড অবজেক্টের স্ট্রিং রিপ্রেজেন্টেশন বর্ণনা করে। উদাহরণস্বরূপ, echo $obj; কী প্রিন্ট করবে। এই মেথড অবশ্যই একটি স্ট্রিং রিটার্ন করতে হবে।

__invoke

__invoke ([ $... ] ) : mixed

এই মেথডটি কল করা হয় যখন একটি স্ক্রিপ্ট একটি অবজেক্টকে ফাংশন হিসেবে কল করার চেষ্টা করে।

__set_state

static __set_state ( array $properties ) : object

এই স্ট্যাটিক মেথডটি var_export() দ্বারা এক্সপোর্ট করা ক্লাসের জন্য কল করা হয়। এটি একটি প্যারামিটার গ্রহণ করে যা এক্সপোর্ট করা প্রপার্টিগুলো অ্যারে আকারে থাকে (array('property' => value, ...)।

__debugInfo

__debugInfo ( void ) : array

এই মেথডটি স্বয়ংক্রিয়ভাবে কল হয় যখন var_dump() এক্সিকিউট হয় একটি অবজেক্ট ডাম্প করার জন্য, যাতে দেখানো যায় কোন প্রপার্টিগুলো দেখানো উচিত। যদি এটি ডিফাইন না থাকে, তবে সকল পাবলিক, প্রোটেক্টেড এবং প্রাইভেট প্রপার্টি দেখানো হবে।

__set

public __set ( string $name , mixed $value ) : void

__set() রান হয় যখন অ্যাক্সেস করা যাচ্ছে না এমন (প্রোটেক্টেড বা প্রাইভেট) বা অস্তিত্বহীন প্রপার্টিতে ডেটা লেখা হয়।

__get

public __get ( string $name ) : mixed

__get() অ্যাক্সেস করা যাচ্ছে না এমন (প্রোটেক্টেড বা প্রাইভেট) বা অস্তিত্বহীন প্রপার্টি থেকে ডেটা পড়তে ব্যবহৃত হয়।

__isset

public __isset ( string $name ) : bool

__isset() ট্রিগার হয় যখন isset() বা empty() কল করা হয় অ্যাক্সেস করা যাচ্ছে না এমন (প্রোটেক্টেড বা প্রাইভেট) বা অস্তিত্বহীন প্রপার্টিতে।

__unset

public __unset ( string $name ) : void

__unset() আহ্বান করা হয় যখন unset() ব্যবহার করা হয় অ্যাক্সেস করা যাচ্ছে না এমন (প্রোটেক্টেড বা প্রাইভেট) বা অস্তিত্বহীন প্রপার্টিতে।


  1. PHP-তে timezone_transitions_get() ফাংশন

  2. PHP-তে explode() ফাংশন

  3. PHP-তে timezone_abbreviations_list() ফাংশন

  4. PHP-তে array() ফাংশন