১. PHP কী ?
PHP হল একটি সার্ভার-সাইড স্ক্রিপ্টিং ভাষা, যা মূলত ডাইনামিক ওয়েবসাইট এবং ওয়েব অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। এটি ক্লায়েন্টের ব্রাউজারে নয়, বরং সার্ভারে কোড এক্সিকিউট করে। এটি ওপেন সোর্স, সহজ এবং শক্তিশালী, যার মাধ্যমে HTML এর সাথে একত্রে ডাইনামিক কনটেন্ট তৈরি করা যায়।
২. PHP এর সিনট্যাক্স
PHP কোড <?php
এবং ?>
এর মধ্যে লিখতে হয়। এটি কোডটি ব্যাখ্যা করতে PHP ইঞ্জিনকে বলে।
উদাহরণ:
<?php
echo "Hello, World!";
?>
এখানে echo
একটি স্টেটমেন্ট যা আউটপুট প্রিন্ট করে।
৩. ভেরিয়েবল
ভেরিয়েবল ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। PHP তে ভেরিয়েবল $
চিহ্ন দিয়ে শুরু হয় এবং এগুলো কেস-সেন্সিটিভ।
উদাহরণ:
<?php
$name = "Hridoy";
echo $name;
?>
এখানে $name
একটি ভেরিয়েবল যা “Hridoy” ডেটা ধারণ করে।
৪. ডেটা টাইপ
PHP বিভিন্ন ডেটা টাইপ সাপোর্ট করে,
যেমন:
- String:
"Hello"
- Integer:
42
- Float:
3.14
- Array**:
[1, 2, 3]
- Object: ক্লাসের মাধ্যমে তৈরি।
৫. কন্ডিশনাল স্টেটমেন্ট
প্রোগ্রামে বিভিন্ন অবস্থার ভিত্তিতে সিদ্ধান্ত নেওয়ার জন্য PHP তে if
, else
, elseif
, এবং switch
ব্যবহৃত হয়।
উদাহরণ:
<?php
$age = 18;
if ($age >= 18) {
echo "Adult";
} else {
echo "Minor";
}
?>
৬.লুপ
লুপ ব্যবহার করে পুনরাবৃত্তিমূলক কাজ সম্পন্ন করা হয়।
উদাহরণ:
<?php
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
}
?>
৭. ফাংশন
ফাংশন হল কোড ব্লক যা একটি নির্দিষ্ট কাজ সম্পন্ন করে। উদাহরণ:
<?php
function add($a, $b) {
return $a + $b;
}
echo add(5, 3);
?>
এটি ৫ ও ৩ যোগফল দেখাবে।
৮. সুপার গ্লোবাল ভেরিয়েবলস
$_GET এবং $_POST ডেটা ক্লায়েন্ট এবং সার্ভার এর মধ্যে আদান-প্রদান করে।
উদাহরণ:
<?php
echo $_GET['name'];
?>
ইউআরএল থেকে name প্যারামিটার নেবে।
৯. অ্যারে
অ্যারে হলো ডেটার সংগ্রহ। এটি একাধিক মান একত্রে সংরক্ষণ করে:
<?php
$colors = array("Red", "Green", "Blue");
echo $colors[0];
?>
আউটপুট হবে "Red"।
১০. **ফাইল হ্যান্ডলিং
ফাইল তৈরি বা পড়ার জন্য PHP ব্যবহার করা হয়:
<?php
$file = fopen("example.txt", "w");
fwrite($file, "Hello, PHP!");
fclose($file);
?>
এটি একটি example.txt ফাইল তৈরি করবে এবং সেখানে লেখা হবে।
১১.ক্লাস এবং অবজেক্ট
PHP Object-Oriented Programming (OOP) সাপোর্ট করে।
উদাহরণ:
<?php
class Car {
public $brand;
function setBrand($brand) {
$this->brand = $brand;
}
function getBrand() {
return $this->brand;
}
}
?>
ক্লাস (Class) কী?
ক্লাস হলো একটি ব্লুপ্রিন্ট বা নকশা, যা থেকেই অবজেক্ট তৈরি হয়। এটি বুঝতে পারেন এক ধরনের টেমপ্লেট হিসেবে, যা নির্ধারণ করে কোন বৈশিষ্ট্য (properties) এবং কৌশল বা কার্য (methods) একটি বস্তুর (object) থাকবে।
উদাহরণস্বরূপ:
- প্রোপার্টিস (Properties):এগুলো বস্তুর অবস্থা বা ডেটা। যেমন, একটি
Car
ক্লাসেcolor
এবংmodel
থাকতে পারে। - মেথডস (Methods): এগুলো ক্লাসের ভেতরে থাকা ফাংশন, যা অবজেক্টের আচরণ বা কার্য নির্ধারণ করে। যেমন,
getMessage()
মেথড।
PHP-তে ক্লাসের উদাহরণ:
<?php
class Car {
// Properties
public $color;
public $model;
// Constructor method to initialize the object
function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
// Method to return a message
function getMessage() {
return "The car is " . $this->color . " and the model is " . $this->model;
}
}
?>
উপরের উদাহরণে:
Car
হলো একটি ক্লাস।- এতে দুটি প্রপার্টি আছে:
$color
এবং$model
। - একটি কন্সট্রাক্টর মেথড
__construct()
আছে, যা অবজেক্ট তৈরি হওয়ার সময় এই প্রপার্টিগুলো সেট করে। getMessage()
মেথড অবজেক্টের ডেটাকে ব্যবহার করে একটি বার্তা প্রদান করে।
অবজেক্ট (Object) কী ?
অবজেক্ট হলো ক্লাসের একটি ইন্সট্যান্স বা বাস্তবায়িত রূপ। যখন আপনি একটি ক্লাস থেকে অবজেক্ট তৈরি করেন, তখন আপনি সেই ক্লাসের সংজ্ঞা অনুযায়ী একটি কনক্রিট (Concrete) বস্তুর উদাহরণ প্রাপ্ত করেন। প্রতিটি অবজেক্টের নিজস্ব ডেটা এবং আচরণ থাকে।
PHP-তে অবজেক্ট তৈরি করার উদাহরণ:
<?php
// Car ক্লাস থেকে একটি অবজেক্ট তৈরি করা হচ্ছে
$myCar = new Car("red", "Toyota");
// অবজেক্টের মেথড কল করে ডেটা দেখানো হচ্ছে
echo $myCar->getMessage(); // আউটপুট: The car is red and the model is Toyota
?>
এখানে:
$myCar
হলোCar
ক্লাসের একটি অবজেক্ট।- কন্সট্রাক্টর মেথডের মাধ্যমে আমরা অবজেক্টের প্রপার্টি (
color
এবংmodel
) সেট করছি। - অবজেক্টের
getMessage()
মেথড কল করে আমরা সেই অবজেক্টের ডেটা নিয়ে একটি বার্তা পাচ্ছি।
ASCII ডায়াগ্রাম:
নিচের ASCII ডায়াগ্রামটি ক্লাস ও অবজেক্টের সম্পর্ক ধ্রুবকভাবে বোঝাতে সহায়ক:
+---------------------+
| Car |
+---------------------+
| - color |
| - model |
+---------------------+
| + __construct() |
| + getMessage() |
+---------------------+
│
(নতুন অবজেক্ট তৈরি)
│
▼
+---------------------+
| $myCar |
+---------------------+
| color: "red" |
| model: "Toyota" |
+---------------------+
এই ডায়াগ্রামে:
- Car: ক্লাস হিসেবে ডিফাইন করা হয়েছে।
- $myCar:
Car
ক্লাসের থেকে তৈরি হওয়া একটি অবজেক্ট।
আরও কিছু চিন্তা
-
Encapsulation: ক্লাসের প্রপার্টি এবং মেথড গুলোকে একসাথে বাঁধা রাখা। এভাবে আপনি অবজেক্টের অভ্যন্তরীণ ডেটা এবং আচরণকে নিরাপদ করতে পারেন।
-
Inheritance, Polymorphism, এবং Abstraction (উত্তরাধিকার, বহু-মুখিতা, এবং বিমূর্ততা): এগুলো আরও উন্নত ও জটিল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর ধারণা, যা আপনাকে কোডের পুনঃব্যবহারযোগ্যতা এবং কাঠামো উন্নত করতে সাহায্য করে।