পিএইচপি-তে ম্যাজিক পদ্ধতি কী কী? এবং কীভাবে এগুলি কার্যকর করা যায়?



এই নিবন্ধটি আপনাকে উদাহরণ সহ পিএইচপি-র বিভিন্ন ম্যাজিক পদ্ধতিগুলির বিশদ এবং ব্যাপক জ্ঞান সরবরাহ করবে।

ভিতরে , বিশেষ ফাংশনগুলি এমনভাবে সংজ্ঞায়িত করা যেতে পারে যে সেগুলি স্বয়ংক্রিয়ভাবে কল হতে পারে এবং এই ফাংশনগুলির মধ্যে কোডটি কার্যকর করতে কোনও ফাংশন কলের প্রয়োজন হয় না। এই বৈশিষ্ট্যটি একটি বিশেষ পদ্ধতিতে উপলভ্য যা যাদু পদ্ধতি হিসাবে পরিচিত। এই নিবন্ধে, আমরা পিএইচপি-র শীর্ষ যাদু পদ্ধতিগুলি নিয়ে আলোচনা করব।

পিএইচপি-তে ম্যাজিক পদ্ধতি কী কী?

2 আন্ডারস্কোর (__) দিয়ে শুরু হওয়া পদ্ধতিগুলিকে সাধারণত পিএইচপি-তে ম্যাজিক পদ্ধতি বলা হয়। এই পদ্ধতির নাম কিছু তালিকার মধ্যে সীমাবদ্ধ পিএইচপি সমর্থিত কীওয়ার্ডগুলি সংরক্ষিত। সুতরাং কোনও ফাংশন পিএইচপি যাদু পদ্ধতিগুলির নামের সাথে সংজ্ঞায়িত করা উচিত নয়।





Magic-Methods-in-PHP

সাধারণত, এই ফাংশনগুলি ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা উচিত এবং এগুলি স্পষ্টভাবে কল করার দরকার নেই।



পিএইচপি-তে ম্যাজিক পদ্ধতির তালিকা

  • __ কাঠামো ()
  • __ ডিস্ট্রাক্ট ()
  • __call ($ মজা, $ আর্গ)
  • __callStatic ($ মজা, $ আরগ)
  • __get ($ সম্পত্তি)
  • __ সেট ($ সম্পত্তি, $ মান)
  • __isset ($ সামগ্রী)
  • __unset ($ সামগ্রী)
  • __ঘুম()
  • __জাগো()
  • __স্ট্রিং()
  • __invoke ()
  • __set_state ($ অ্যারে)
  • __ক্লোন ()
  • __ডিবাগ তথ্য()
  • __ কাঠামো (): এটি এমন একটি পদ্ধতি যা কোনও বস্তু তৈরির পরে স্বয়ংক্রিয়ভাবে কল হয়। যে কোনও সংখ্যক আর্গুমেন্ট এখানে সংজ্ঞায়িত করা যায় যা অবজেক্ট তৈরি হওয়ার পরে পাস করা হবে।
শ্রেণীর নমুনা {ফাংশন ব্যবহারকারী_দেফ () cho প্রতিধ্বনি 'ব্যবহারকারী সংজ্ঞায়িত কনস্ট্রাক্টর'} ফাংশন __ কনস্ট্রাক্ট () cho প্রতিধ্বনি 'পূর্বনির্ধারিত কনস্ট্রাক্টর'}} $ اعتراض = নতুন নমুনা ()?>

  • __ ডিস্ট্রাক্ট (): ডেস্ট্রাক্টর হ'ল অবজেক্ট-ওরিয়েন্টেড ল্যাঙ্গুয়েজের একটি সাধারণ বৈশিষ্ট্য যা নির্দিষ্ট কোনও অবজেক্টের সাথে অন্য কোনও রেফারেন্স না পাওয়া মাত্রই ট্রিগার হয়ে যায়।
ব্যবহারকারী_দেফ () // চেক অবজেক্টটি ইজ ইজ_বজেক্ট ($ অবজেক্ট) নষ্ট হয়ে গেছে বা নেই '' '?>

  • __call ($ মজা, $ আরগ): এই পদ্ধতিটি যখন অপরিজ্ঞাত বা অ্যাক্সেস অযোগ্য পদ্ধতি বলা হয় তখন তাকে ডাকা হয়। যার অর্থ একটি অবজ্ঞাত বা অ্যাক্সেস অ্যাক্সেসযোগ্য পদ্ধতি কোনও বস্তুর উপর প্রবর্তিত হলে এটিকে কল বলা হয়।
চালান ('শিক্ষক') // যদি যে পদ্ধতিটি বিদ্যমান নেই তাকে যদি বস্তুর মধ্যে বলা হয় তবে __call () পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল হবে। $ اعتراض-> খাওয়া ('আশোক', 'কমলা') $ $জেজ-> ব্যবহারকারী_পরিচয় ()?>



জাভাতে কীভাবে উদাহরণ ভেরিয়েবল ঘোষণা করতে হয়
  • __callStatic ($ মজা, $ আরগ): যখন একটি অপরিজ্ঞাত বা অ্যাক্সেসযোগ্য পদ্ধতি স্থির পদ্ধতিতে ডাকা হয় তখন এই পদ্ধতিটি বলা হয়।
user_define ()?>

  • __get ($ সম্পত্তি): এই পদ্ধতিটি পিএইচপি সম্পত্তি ওভারলোডিং দ্বারা গতিশীলভাবে তৈরি শ্রেণীর সম্পত্তিগুলির মান অর্জনের জন্য ব্যবহৃত হয়।
নাম = $ নাম $ এটি-> রেজি = $ রেজি} পাবলিক ফাংশন __get ($ সম্পত্তি নাম) {যদি ($ সম্পত্তি নাম == 'রেজি') {যদি ($ এই-> রেজি> 30) {ফিরে আসে $ এটি-> রেজি - 10} অন্য {ফিরিয়ে দিন $ এটি -> $ সম্পত্তি নাম}} অন্য} ফিরে {এটি -> $ সম্পত্তি নাম N}} $ اعتراض = নতুন শিক্ষার্থী ('অশোক', 60) // ছাত্র শ্রেণীর সাথে অবজেক্ট ইনস্ট্যান্ট করুন এবং প্রাথমিক মান নির্ধারণ করুন কনস্ট্রাক্টরের সাথে থাকা বৈশিষ্ট্যগুলিতে। প্রতিধ্বনি 'নাম :'। $ اعتراض-> নাম। '' // যখন ব্যক্তিগত সম্পত্তি অ্যাক্সেস করা হয়, __get () পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল হবে, সুতরাং আমরা পরোক্ষভাবে সম্পত্তি মান পেতে পারি। প্রতিধ্বনি 'রেজি :'। $ আপজি-> রেজি। '' // __get () পদ্ধতিটি স্বয়ংক্রিয়ভাবে বলা হয় , এবং এটি নিজেই অবজেক্ট অনুযায়ী বিভিন্ন মান দেয়। ?>

  • __ সেট ($ সম্পত্তি, $ মান): এই পদ্ধতিটি পিএইচপি সম্পত্তি ওভারলোডিং দ্বারা গতিশীলভাবে তৈরি শ্রেণীর সম্পত্তিগুলির মান স্থাপনের জন্য ব্যবহৃত হয়।
নাম = $ নাম $ এটি-> রেজি = $ রেগ} পাবলিক ফাংশন __set ($ সম্পত্তি, $ মান) {যদি ($ সম্পত্তি == 'রেজি') $ মান $ সম্পত্তি = public মান পাবলিক ফাংশন মজা () {প্রতিধ্বনি 'আমার নাম '। $ এটি-> নাম।', আমার নিবন্ধকরণ নম্বরটি '। $ এই-> নিবন্ধ}} $ اعتراض = নতুন শিক্ষার্থী (' অশোক ', 40) // নোট করুন যে প্রাথমিক মান কোড দ্বারা পরিবর্তন করা হবে নিচে. $ اعتراض-> নাম = 'সুষমা' // 'নাম' সম্পত্তিটি সফলভাবে বরাদ্দ করা হবে। যদি কোনও __set () পদ্ধতি না থাকে তবে প্রোগ্রামটি একটি ব্যতিক্রম ছুঁড়ে দেবে। $ اعتراض-> বয়স = 16 // 'রেগ' সম্পত্তি সাফল্যের সাথে অর্পণ করা হবে। $ obj-> reg = 160 // 160 একটি অবৈধ মান, সুতরাং এটি নির্ধারিত হতে ব্যর্থ। $ اعتراض-> মজা ()?>

  • __isset ($ বিষয়বস্তু); এই পদ্ধতিটি অপরিজ্ঞাত বা অ্যাক্সেস অযোগ্য সদস্যের জন্য আইসেট () বা খালি () কল করার সময় বলা হবে। পিএইচপি আইসেট () ফাংশনটি ব্যবহার করে প্রয়োজনীয় ওভারলোডেড সম্পত্তি সেট করা আছে কিনা তা যাচাই করার সময় এটি স্বয়ংক্রিয়ভাবে আহ্বান করা হয়।
নাম = $ নাম $ এই-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __isset ($ বিষয়বস্তু) {প্রতিধ্বনি '$ $ বিষয়বস্তু private সম্পত্তিটি ব্যক্তিগত , __isset () পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল হয়। 'প্রতিধ্বনি isset ($ এই -> $ বিষয়বস্তু)}}। اعتراض = নতুন শিক্ষার্থী (' অশোক ', 30) // প্রাথমিকভাবে নির্ধারিত। প্রতিধ্বনি isset ($ اعتراض-> লিঙ্গ), '' প্রতিধ্বনি isset ($ আপত্তি-> নাম), '' প্রতিধ্বনি isset ($ اعتراض-> রেজি), ''?>

  • __ আনসেট ($ সামগ্রী): অপরিজ্ঞাত বা অ্যাক্সেস অযোগ্য সদস্যের জন্য রিসেট () কল করার সময় এই পদ্ধতিটি কল করা হবে।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __আনসেট ($ সামগ্রী) {প্রতিধ্বনি 'যখন আমরা শ্রেণীর বাইরে আনসেট () পদ্ধতি ব্যবহার করি তখন এটি স্বয়ংক্রিয়ভাবে বলা হয়। 'প্রতিধ্বনি isset ($ এই -> $ বিষয়বস্তু)}}। اعتراض = নতুন শিক্ষার্থী (' অশোক ', 30) // প্রাথমিকভাবে নির্ধারিত। আনসেট ($ اعتراض-> লিঙ্গ) আনসেট ($ আপজেট-> নাম) আনসেট ($ আপত্তি-> রেজি)?>

  • __ঘুম(): এই পদ্ধতিটি প্রথমে সিরিয়ালাইজ () চালানোর সময় বলা হয়। এটি সিরিয়ালাইজেশনের আগে পিএইচপি শ্রেণীর অবজেক্টগুলি সাফ করার জন্য বস্তুর সম্পত্তি অ্যারে প্রদান করে।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এই-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __ ঘুম () {প্রতিধ্বনি 'যখন শ্রেণীর বাইরে সিরিয়ালাইজ () পদ্ধতি বলা হয় তখন এটি বলা হয়। '$ this-> নাম = base64_encode ($ এটি-> নাম) রিটার্ন অ্যারে (' নাম ',' রেজি ') // এটি অবশ্যই এমন একটি মান ফেরত পাঠাতে হবে যেগুলির উপাদানগুলি প্রত্যাশিত বৈশিষ্ট্যের নাম। }} $জেজ = নতুন শিক্ষার্থী ('অশোক') // প্রাথমিকভাবে নির্ধারিত। প্রতিধ্বনি সিরিয়ালাইজ ($ اعتراض) প্রতিধ্বনি ''?>

  • __জাগো(): এই পদ্ধতিটি ডেসারিয়ালাইজেশন () কার্যকর করার সময় বলা হয়। এটি deserialization () অনুরোধ নেওয়ার উপর বস্তুর বৈশিষ্ট্য এবং সংস্থান পুনরুদ্ধার কাজের বিপরীত হবে।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এই-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __ ঘুম () {প্রতিধ্বনি 'যখন শ্রেণীর বাইরে সিরিয়ালাইজ () পদ্ধতি বলা হয় তখন এটি বলা হয়। '$ this-> নাম = base64_encode ($ এটি-> নাম) রিটার্ন অ্যারে (' নাম ',' রেজি ') // এটি অবশ্যই এমন একটি মান ফেরত পাঠাতে হবে যেগুলির উপাদানগুলি প্রত্যাশিত বৈশিষ্ট্যের নাম। } পাবলিক ফাংশন __ওয়াকআপ () cho প্রতিধ্বনি 'যখন unserialize () পদ্ধতিটি শ্রেণীর বাইরে বলা হয় তখনই এটি ডাকা হয়। '$ this-> নাম = 2 $ this-> লিঙ্গ =' পুরুষ '}} $ اعتراض = নতুন শিক্ষার্থী (' অশোক ') // প্রাথমিকভাবে নির্ধারিত। var_dump (সিরিয়ালাইজ ($ অবজেক্ট)) var_dump (আনসিরিয়ালাইজ (সিরিয়ালাইজ ($ অবজেক্ট)))?>

  • __স্ট্রিং(): কোনও পদ্ধতি সরাসরি প্রিন্ট করতে ইকো পদ্ধতি ব্যবহার করার সময় এই পদ্ধতিটি ডাকা হবে। পিএইচপি মুদ্রণ বিবৃতি সহ শ্রেণীর দৃষ্টান্তগুলি ব্যবহার করার সময় এটি একটি স্ট্রিং মান ফেরত প্রত্যাশিত।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __to স্ট্রিং () {রিটার্ন 'গো গো গো'}} $ اعتراض = নতুন শিক্ষার্থী ('অশোক') // প্রাথমিকভাবে নির্ধারিত assigned প্রতিধ্বনি $ اعتراض?>

  • __invoke (): এই পদ্ধতিটি এমন একটি শ্রেণিতে সংজ্ঞায়িত করা হয় যা কল করার ক্রিয়াকলাপের কোনও উপায়ে কল করার সময় ডাকা হবে।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __invoke () cho প্রতিধ্বনি 'এটি একটি অবজেক্ট'}} $জেজ = নতুন শিক্ষার্থী ('অশোক') // প্রাথমিকভাবে নির্ধারিত । $ আপত্তি ()?>

  • __set_state ($ অ্যারে): এই পদ্ধতিটি var_export () কল করার সময় বলা হয়। এটি বস্তুর সম্পত্তি অ্যারে রফতান করার সময় অনুরোধ করা একটি স্থিতিশীল পদ্ধতি এবং এর আর্গুমেন্টের মতো অ্যারে ভেরিয়েবলের প্রত্যাশা করে।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ}} $ اعتراض = নতুন শিক্ষার্থী ('অশোক') // প্রাথমিকভাবে নির্ধারিত। var_export ($ اعتراض)?>

  • __ক্লোন (): যখন অবজেক্টটি অনুলিপি করা হয় তখন এই পদ্ধতিটি বলা হয়।
নাম = $ নাম $ এটি-> রেজি = $ রেজি $ এটি-> লিঙ্গ = $ লিঙ্গ} পাবলিক ফাংশন __ক্লোন () {প্রতিধ্বনি __METHOD __। you আপনি অবজেক্টটিকে ক্লোন করছেন। '}} $জেজ = নতুন শিক্ষার্থী (' অশোক ') // প্রাথমিকভাবে নির্ধারিত। $জেজ 2 = ক্লোন $ varজেজ ভার_ডাম্প ('অবজেক্ট 1:') ভার_ডাম্প ($ অবজেক্ট) ইকো '' ভার_ডাম্প ('অবজেক্ট 2:') ভার_ডাম্প ($জেজ 2)?>

জাভা প্রিন্ট রাইটার কি
  • __ডিবাগ তথ্য(): এই পদ্ধতিটি দেখানো উচিত এমন বৈশিষ্ট্যগুলি পাওয়ার জন্য কোনও বস্তু ডাম্প করার সময় var_dump () দ্বারা ডাকা হয়। পদ্ধতিটি যদি কোনও সামগ্রীতে সংজ্ঞায়িত না করা হয়, তবে সমস্ত পাবলিক, সুরক্ষিত এবং ব্যক্তিগত সম্পত্তি দেখানো হবে।
প্রোপ = $ ভাল} পাবলিক ফাংশন __debugInfo () {রিটার্ন ['propSquared' =>-এই-> প্রোপ ** 2,]}} var_dump (নতুন নমুনা (22))?>

এটির সাথে, আমরা পিএইচপি নিবন্ধে এই যাদু পদ্ধতিটি শেষ করতে এসেছি। আমি আশা করি আপনি পিএইচপি-র বিভিন্ন জাদু পদ্ধতি সম্পর্কে ধারণা পেয়েছেন।

দেখুন বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা এডুরেকা দ্বারা।

আমাদের জন্য একটি প্রশ্ন আছে? 'এর মন্তব্য বিভাগে এটি উল্লেখ করুন ম্যাজিক পদ্ধতিগুলি পিএইচপি ”এবং আমি আপনার কাছে ফিরে আসব।