PHP-তে OOP-এর পরিচিতি

এখন আমরা PHP-তে OOP শিখবো। আসুন একটি বাস্তব জীবনের উদাহরণ নেওয়া যাক, এবং তারপর এটিকে PHP-তে স্থানান্তর করি।

উদাহরণ হিসেবে একটি গাড়ি নেওয়া যাক। এর চাকা, রঙ, বডির স্টাইল, ইঞ্জিনের ক্ষমতা ইত্যাদি রয়েছে। এছাড়াও, ড্রাইভার এটিকে কমান্ড দিতে পারে: চলো, থামো, ডানদিকে ঘুরো, বামদিকে ইত্যাদি।

এটা বলা যেতে পারে যে গাড়ির একটি নির্দিষ্ট ক্লাস রয়েছে, যার সাধারণ বৈশিষ্ট্য রয়েছে (সবার চাকা আছে এবং সবার কাছে কমান্ড দেওয়া যায়)।

রাস্তায় দাঁড়িয়ে থাকা একটি নির্দিষ্ট গাড়ি - এই ক্লাসের একটি প্রতিনিধি, বা, অন্য শব্দে, এই ক্লাসের একটি অবজেক্ট। এই ক্লাসের সমস্ত অবজেক্টের প্রোপার্টি রয়েছে: চাকার সংখ্যা, রঙ, বডির স্টাইল এবং মেথড: চলো, থামো, ডানদিকে ঘুরো, বামদিকে।

অন্য কথায়, ক্লাস本身就是一个 নকশা, যার ভিত্তিতে কারখানায় গাড়ি তৈরি করা হয়। অবজেক্ট হলো সেই নকশা অনুযায়ী তৈরি করা গাড়ি本身।

PHP-এ ক্লাস তৈরি করা হয় কীওয়ার্ড class দিয়ে, যার পরে এই ক্লাসের নাম আসে। আসুন একটি Car ক্লাস তৈরি করি:

php<?php
  class Car
  {
    // এখানে কোড, অর্থাৎ PHP-তে গাড়ির নকশা
  }
?>

এখন আমাদের নকশায় নির্দিষ্ট করা যাক যে এই নকশা অনুযায়ী তৈরি যেকোনো গাড়ির একটি রঙের প্রোপার্টি এবং একটি জ্বালানির পরিমাণের প্রোপার্টি থাকবে।

এর জন্য ক্লাসের ভিতরে আমরা প্রোপার্টি $color এবং প্রোপার্টি $fuel লিখব:

php<?php
  class Car
  {
    // প্রোপার্টি সেট করা যাক (মূলত ক্লাসের ভেরিয়েবল):
    public $color; // গাড়ির রঙ
    public $fuel; // জ্বালানির পরিমাণ
  }
?>

এখন আমাদের ক্লাসের মেথডগুলি তৈরি করা যাক। PHP-এ মেথডগুলি, সাধারণ ফাংশনের মতো, ঘোষণা করা হয় কীওয়ার্ড function দিয়ে, যার আগে কীওয়ার্ড public লেখা হয়।

যেমনটি আগে উল্লেখ করা হয়েছে, আমাদের গাড়ি চলতে পারে, ঘুরতে পারে, থামতে পারে। আসুন আমাদের ক্লাসে সংশ্লিষ্ট মেথড তৈরি করি:

php<?php
  class Car
  {
    public $color; // গাড়ির রঙ
    public $fuel;  // জ্বালানির পরিমাণ
    
    // চলার কমান্ড:
    public function go()
    {
      // কিছু PHP কোড
    }
    
    // ঘোরার কমান্ড:
    public function turn()
    {
      // কিছু PHP কোড
    }
    
    // থামার কমান্ড:
    public function stop()
    {
      // কিছু PHP কোড
    }
  }
?>

আমরা আমাদের গাড়ির নকশা তৈরি করেছি। এখন কারখানায় যেতে হবে এবং এই ক্লাসের একটি অবজেক্ট তৈরি করতে হবে (অর্থাৎ একটি নির্দিষ্ট গাড়ি)।

PHP-এ এটি করা হয় কীওয়ার্ড new দিয়ে, যার পরে ক্লাসের নাম লেখা হয়:

php<?php
  new Car;
?>

যাইহোক, শুধুমাত্র ক্লাসের একটি অবজেক্ট তৈরি করলে - এটি কোন কাজে আসবে না (এটি যেমন, উদাহরণস্বরূপ, একটি অ্যারে ঘোষণা করা এবং এটি কোথাও সংরক্ষণ না করা)। আমাদের এই অবজেক্ট সংরক্ষণ করার জন্য একটি ভেরিয়েবল প্রয়োজন।

ধরুন এই ভেরিয়েবলের নাম $myCar - এতে আমরা তৈরি করা অবজেক্টটি লিখি:

php<?php
  $myCar = new Car;
?>

গাড়ি তৈরি করার পরে এর প্রোপার্টিগুলিতে অ্যাক্সেস করা যেতে পারে। এগুলিতে অ্যাক্সেস হয় -> arrow এর মাধ্যমে। আসুন আমাদের অবজেক্টের প্রোপার্টি সেট করি:

php<?php
  $myCar = new Car; // কারখানাকে গাড়ি তৈরি করার নির্দেশ দিন
  
  // অবজেক্টের প্রোপার্টি সেট করুন:
  $myCar->color = 'red'; // লাল রঙ করুন
  $myCar->fuel = 50; // জ্বালানি ভরুন
?>

এটাই, আমাদের গাড়ি তৈরি, রঙ করা এবং জ্বালানি ভরা হয়েছে। এখন আমরা এই গাড়ির মেথডের মাধ্যমে এটিকে কমান্ড দিতে পারি।

মেথডে অ্যাক্সেসও arrow এর মাধ্যমে হয়, তবে, প্রোপার্টির বিপরীতে, মেথডের নামের পরে বন্ধনী লিখতে হয়। আসুন আমাদের অবজেক্টকে কমান্ড দিই:

php<?php
  $myCar->go();
  $myCar->turn();
  $myCar->stop();
?>