PHP এর সুপার গ্লোবাল ভেরিয়েবলস | Super Global Variables

Abu Sayed
3 min readFeb 17, 2024

--

পিএইচপি এর সুপার গ্লোবাল ভেরিয়েবলস সম্পর্কে জানুন — $GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION. উদাহরণসহ বাংলায় বিস্তারিত ব্যাখ্যা। ( PHP: Super Global Variables )

PHP এর সুপার গ্লোবাল ভেরিয়েবলস | Super Global Variables

প্রিয় পাঠক,

আমি আপনাকে PHP এর সুপার গ্লোবাল ভেরিয়েবলস সম্পর্কে বাংলায় বিস্তারিত ভাবে শিখিয়ে দেবার চেষ্টা করবো।

সুপার গ্লোবাল ভেরিয়েবলস হল PHP এর এমন ভেরিয়েবলস যা স্ক্রিপ্টের যে কোন স্কোপ থেকে অ্যাক্সেস করা যায়। এগুলো হল:

$GLOBALS — গ্লোবাল ভেরিয়েবলসকে স্টোর করে।

$_SERVER — সার্ভার এবং এক্সিকিউশন পরিবেশের তথ্য ধারণ করে।

$_REQUEST — HTTP রিকোয়েস্ট প্যারামিটারস সংরক্ষণ করে।

$_POST — HTTP POST রিকোয়েস্ট প্যারামিটারস সংরক্ষণ করে।

$_GET — HTTP GET রিকোয়েস্ট প্যারামিটারস সংরক্ষণ করে।

$_FILES — HTTP ফাইল আপলোড তথ্য সংরক্ষণ করে।

$_ENV — পরিবেশ ভেরিয়েবলস সংরক্ষণ করে।

$_COOKIE — HTTP কুকি তথ্য সংরক্ষণ করে।

$_SESSION — সেশন ভেরিয়েবলস সংরক্ষণ করে।

উদাহরণস্বরূপ, আপনি একটি ফাংশনে $name ভেরিয়েবল ডিক্লেয়ার করে দিলে, অন্য কোন ফাংশন থেকে $GLOBALS[‘name’] ব্যবহার করে এই ভেরিয়েবলের মান অ্যাক্সেস করা যাবে।

$_SERVER ব্যবহার করে আপনি সার্ভার নাম, PHP ভার্সন, হোস্ট নাম ইত্যাদি অ্যাক্সেস করতে পারেন।

$_REQUEST দিয়ে GET এবং POST উভয় রকম রিকোয়েস্ট প্যারামিটারস অ্যাক্সেস করা যায়।

একটি ছোট পিএইচপি প্রোগ্রামের মাধ্যমে আমি সুপার গ্লোবাল ভেরিয়েবলসের ব্যবহার দেখিয়ে দিচ্ছি:

<?php
$name = "John"; function hello() {
global $name;
echo $name;
}
hello(); // Prints "John"?>

এখানে $name গ্লোবাল স্কোপে ডিক্লেয়ার করা হলেও hello() ফাংশনটি $name অ্যাক্সেস করতে পারে global কিওয়ার্ডের সাহায্যে।

প্রস্তাবনা

PHP-তে সুপার গ্লোবাল ভেরিয়েবলস হল বিশেষ ভেরিয়েবল যা সবসময় সবস্কোপে উপলব্ধ থাকে, নির্বিশেষে তারা কোথায় ডিক্লেয়ার করা হয়েছে। এগুলো কোনো স্ক্রিপ্টে এক্সপ্লিসিটলি ডিক্লেয়ার করতে হয় না, কারণ এগুলো PHP কর্তৃক স্বয়ংক্রিয়ভাবে তৈরি করা হয়।

সুপার গ্লোবাল ভেরিয়েবলের ধরন

PHP-তে নয়টি সুপার গ্লোবাল ভেরিয়েবল রয়েছে:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

সুপার গ্লোবাল ভেরিয়েবলের ব্যবহার

সুপার গ্লোবাল ভেরিয়েবলস বিভিন্ন কাজের জন্য ব্যবহার করা যায়, যেমন:

  • ব্যবহারকারীর ইনপুট সংগ্রহ করা: $_POST, $_GET এবং $_FILES ইউজার ফর্ম, URL এবং ফাইল আপলোডের মাধ্যমে ইনপুট সংগ্রহ করতে ব্যবহার করা হয়।
  • সার্ভার তথ্য অ্যাক্সেস করা: $_SERVER সার্ভার সম্পর্কিত তথ্য যেমন হোস্ট নাম, পোর্ট নাম্বার এবং HTTP হেডার অ্যাক্সেস করতে ব্যবহার করা হয়।
  • পরিবেশগত ভেরিয়েবল অ্যাক্সেস করা: $_ENV সিস্টেম-নির্ধারিত পরিবেশগত ভেরিয়েবল অ্যাক্সেস করতে ব্যবহার করা হয়।
  • কুকিজ অ্যাক্সেস করা: $_COOKIE ব্যবহারকারীর ব্রাউজারে সেট করা কুকিজ অ্যাক্সেস করতে ব্যবহার করা হয়।
  • সেশন ডেটা অ্যাক্সেস করা: $_SESSION ব্যবহারকারী সেশনের সাথে সংযুক্ত ডেটা অ্যাক্সেস করতে ব্যবহার করা হয়।

উদাহরণ

$GLOBALS সুপার গ্লোবাল ভেরিয়েবলের ব্যবহার:

<?php
$a = 10;
function test() {
global $a;
echo $a; // 10 প্রিন্ট করবে
}
test();
?>

$_POST সুপার গ্লোবাল ভেরিয়েবলের ব্যবহার:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$email = $_POST["email"];
// ফর্ম থেকে নাম এবং ইমেইল ডেটা প্রসেস করুন
}
?>

OPP-এ প্রোগ্রাম

নিচে OPP ব্যবহার করে সুপার গ্লোবাল ভেরিয়েবলস কীভাবে কাজ করে তা দেখানো একটি ছোট প্রোগ্রাম রয়েছে:

<?php
class User {
public $name;
public $email;
  public function __construct($name, $email) {
$this->name = $name;
$this->email = $email;
}
public function printInfo() {
echo "নাম: " . $this->name . "<br>";
echo "ইমেইল: " . $this->email . "<br>";
}
}
$user = new User($_POST["name"], $_POST["email"]);
$user->printInfo();
?>

উপসংহার

PHP-তে সুপার গ্লোবাল ভেরিয়েবলস কাজের জন্য একটি শক্তিশালী টুল। এগুলো আপনাকে স্ক্রিপ্টের যেকোনো জায়গা থেকে গুরুত্বপূর্ণ তথ্য অ্যাক্সেস করতে দেয়, যা ডেভেলপমেন্ট প্রক্রিয়াকে সহজ এবং আরও দক্ষ করে তোলে। সারাংশে, সুপার গ্লোবাল ভেরিয়েবলস স্ক্রিপ্টের যে কোন স্থান থেকে অ্যাক্সেসযোগ্য করে তুলেছে যা পিএইচপি প্রোগ্রামিং কে সহজ ও কার্যকর করে তুলেছে।

--

--

Abu Sayed

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