পিএইচপি-৪ [Operator, Function, Superglobal] - SMH Amiri

সর্বশেষ লিখাসমূহ

পিএইচপি-৪ [Operator, Function, Superglobal]

 



পিএইচপি অপারেটর

ভ্যারিয়েবল এবং ভ্যালুর মধ্যে অপারেশন করার জন্য অপারেটর ব্যবহৃত হয়।

অপারেটর এক ধরণের প্রতীক যা ভ্যালু অথবা ভ্যারিয়েবলকে অপারেট করতে পারে। উদাহরণস্বরূপঃ + একটি অপারেটর যা যোগ করতে ব্যবহৃত হয়।

পিএইচপি অপারেটরগুলোকে নিম্নোক্ত ভাগে ভাগ করেছেঃ

  • Arithmetic অপারেটরঃ গানিতিক হিসাব-নিকাশ করে।
  • Assignment অপারেটরঃ ভ্যারিয়েবলে ভ্যালু এসাইন/জমা করে।
  • Comparison অপারেটরঃ দুই বা ততোধিক ভ্যালুর তুলনা করে।
  • Increment/Decrement অপারেটরঃ ভ্যালু এক বৃদ্ধি/হ্রাস করে।
  • Logical অপারেটরঃ সিন্ধান্ত গ্রহণে সহায়তা করে।
  • String অপারেটরঃ স্ট্রিং এসাইন এবং দুটি স্ট্রিং একত্রিত করে।
  • array অপারেটরঃ array এর মধ্যে তুলনা করে।

পিএইচপি Arithmetic অপারেটর

গাণিতিক যোগ-বিয়োগ, গুণ-ভাগ ইত্যাদির জন্য পিএইচপি Arithmetic অপারেটর ব্যবহার করা হয়।

অপারেটরঅর্থউদাহরণ
($a=20, $b=9)
বর্ণনা
+যোগ$a + $b = 29$a এবং $b এর যোগফল রিটার্ন করে।
-বিয়োগ$a - $b = 11$a এবং $b এর বিয়োগফল রিটার্ন করে।
*গুন$a * $b = 180$a এবং $b এর গুনফল রিটার্ন করে।
/ভাগ$a/$b = 2.222...$a এবং $b এর ভাগফল রিটার্ন করে।
%ভাগশেষ$a % $b = 2$a এবং $b এর ভাগশেষ রিটার্ন করে।
**সূচক$a ** $b =b এর মান a সূচক হিসাবে ফলাফল রিটার্ন করা।


উদাহরণঃ পিএইচপি Arithmetic অপারেটর
<?php 
$a = 20;
$b = 9;
echo " a + b = ", $a + $b , "<br>";//যোগ 
echo " a - b = ", $a - $b , "<br>";/বিয়োগ 
echo " a * b = ", $a * $b , "<br>";//গুন
echo " a / b = ", $a / $b , "<br>";//ভাগ
echo " a % b = ", $a % $b , "<br>";//মডুলাস(ভাগশেষ) 
?>


ফলাফল
 a + b = 29
a - b = 11
a * b = 180
a / b = 2.2222222222222
a % b = 2

পিএইচপি Assignment অপারেটর

পিএইচপি এসাইনমেন্ট(=) অপারেটর ব্যবহার করে ভ্যারিয়েবল এর মধ্যে ভ্যালু এসাইন করা হয়।

অর্থাৎ "=" চিহ্ন পিএইচপির মৌলিক এসাইনমেন্ট অপারেটর। এর অর্থ এই যে, ডান পাশের ভ্যালু বাম পাশের অপারেন্ড/ভ্যারিয়েবলে এ জমা হয়।

অপারেটরউদাহরন(int a=11, b=5)একই রকমফলাফল
=a = ba = b5
+=a += ba = a+b16
-=a -= ba = a-b6
*=a *= ba = a*b55
/=a /= ba = a/b2
%=a %= ba = a%b1


উদাহরণঃ পিএইচপি Assignment অপারেটর
<?php 
$a = 11;
$b = 5;
echo " a = ", $a  = $b , "<br>"; 
echo " a = ", $a += $b , "<br>";//যোগ 
echo " a = ", $a -= $b , "<br>";//বিয়োগ 
echo " a = ", $a *= $b , "<br>";//গুন
echo " a = ", $a /= $b , "<br>";//ভাগ
echo " a = ", $a %= $b , "<br>";//মডুলাস(ভাগশেষ) 
?>


ফলাফল
 a = 5
a = 10
a = 5
a = 25
a = 5
a = 0

পিএইচপি Comparison অপারেটর

পিএইচপি comparison অপারেটর এর মাধ্যমে নাম্বার অথবা স্ট্রিং এর মধ্যে তুলনা করা হয়ঃ

অপারেটরনামবর্ণনা
==Equal$a যদি $b এর সমান হয়, তাহলে true রিটার্ন করবে।
===Identical$a যদি $b এর সমান ও একই টাইপের হয়, তাহলে true রিটার্ন করবে।
!=Not equal$a যদি $b এর সমান না হয়, তাহলে true রিটার্ন করবে।
<>Not equal$a যদি $b এর সমান না হয়, তাহলে true রিটার্ন করবে।
!==Not identical$a যদি $b এর সমান অথবা একই টাইপের না হয়, তাহলে true রিটার্ন করবে।
>Greater than$a যদি $b এর চেয়ে বড় হয়, তাহলে true রিটার্ন করবে।
<Less than$a যদি $b এর চেয়ে ছোট হয়, তাহলে true রিটার্ন করবে।
>=Greater than or equal$a যদি $b এর চেয়ে বড় অথবা সমান হয়, তাহলে true রিটার্ন করবে।
<=Less than or equal$a যদি $b এর চেয়ে ছোট অথবা সমান হয়, তাহলে true রিটার্ন করবে।


উদাহরণঃ পিএইচপি Comparison অপারেটর
<?php 
$a = 200;
$b = "200";

// $a == $b সত্য রিটার্ন করবে কারন ভ্যালু সমান।
var_dump($a == $b);

// $a === $b মিথ্যা রিটার্ন করবে কারন টাইপ একই রকম না।
var_dump($a === $b);

// $a != $b মিথ্যা রিটার্ন করবে কারন ভ্যালু সমান।
var_dump($a != $b);

// $a <> $b মিথ্যা রিটার্ন করবে কারন ভ্যালু সমান।
var_dump($a <> $b);

// $a !== $b সত্য রিটার্ন করবে কারন টাইপ একই রকম না।
var_dump($a !== $b);

// $a > $b  মিথ্যা রিটার্ন করবে কারন $b এবং $a সমান।
var_dump($a > $b);

// $a < $b মিথ্যা রিটার্ন করবে কারন $b এবং $a সমান। 
var_dump($a < $b);

// $a >= $b সত্য রিটার্ন করবে কারন $b এর চেয়ে $a সমান অথবা বড়। 
var_dump($a >= $b);

// $a <= $b সত্য রিটার্ন করবে কারন $b এর চেয়ে $a সমান অথবা ছোট।
var_dump($a <= $b);?>


ফলাফল
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)

পিএইচপি increment/decrement অপারেটর

পিএইচপি increment/decrement অপারেটর এর মধ্যমে কোনো ভ্যারিয়েবলের ভ্যালু বৃদ্ধি বা হ্রাস (Increment or Decrement) করা যায়।

অপারেটরনামবর্ণনা
++$aPre-incrementআগে $a এর ভ্যালু এক বৃদ্ধি পায় তারপরে $a কে রিটার্ন করে।
--$aPre-decrementআগে $a এর ভ্যালু এক হ্রাস পায় তারপরে $a কে রিটার্ন করে।
$a++Post-incrementআগে $a কে রিটার্ন করে তারপরে $a এর ভ্যালু এক বৃদ্ধি পায়।
$a--Post-decrementআগে $a কে রিটার্ন করে তারপরে $a এর ভ্যালু এক হ্রাস পায়।


উদাহরণঃ পিএইচপি increment/decrement অপারেটর
<?php 
$a = 5;  
echo ++$a . "<br>";
 
echo --$a . "<br>";
 
echo $a++ . "<br>";
 
echo $a-- . "<br>";
;?>


ফলাফল
6
5
5
6

পিএইচপি Logical অপারেটর

কন্ডিশনাল স্টেটমেন্ট গুলোর মধ্যে কম্বিনেশনের জন্য পিএইচপি logical অপারেটর ব্যবহার করা হয়।

অপারেটরনামবর্ণনা
andAnd$a এবং $b উভয়েই true হলে true রিটার্ন করে।
orOr$a এবং $b এর মধ্যে যেকোনো একটি true হলে true রিটার্ন করে।
xorxor$a এবং $b এর মধ্যে যেকোনো একটি true কিন্তু উভয়ে true না হলে true রিটার্ন করে।
&&And$a এবং $b এর উভয়ই true হলে true রিটার্ন করে।
||Or$a এবং $b এর যেকোনো একটি true হলে true রিটার্ন করে।
!Not$a true না হলে true রিটার্ন করে।


উদাহরণঃ পিএইচপি logical অপারেটর
<?php 
$a = 200;
$b = 50;

// and এর ব্যবহার 
if ($a == 200 and $b == 50) {
    echo "আমিরী একাডেমী". "<br>";
} // or এর ব্যবহার if ($a == 200 or $b == 80) { echo "আমিরী একাডেমী" . "<br>";
} // xor এর ব্যবহার if ($a == 200 xor $b == 80) { echo "আমিরী একাডেমী" . "<br>";
} // && এর ব্যবহার if ($a == 200 && $b == 50) { echo "আমিরী একাডেমী" . "<br>";
} // || এর ব্যবহার if ($a == 200 || $b == 80) { echo "আমিরী একাডেমী" . "<br>";
} // !== এর ব্যবহার if ($a !== 50) { echo "আমিরী একাডেমী" . "<br>"; } ;?>


ফলাফল
আমিরী একাডেমী
আমিরী একাডেমী
আমিরী একাডেমী
আমিরী একাডেমী
আমিরী একাডেমী
আমিরী একাডেমী

পিএইচপি String অপারেটর

পিএইচপিতে ২ টি অপারেটর আছে যেগুলো শুধুমাত্র String অপারেশনের জন্য ডিজাইন করা হয়েছে।

অপারেটরনামবর্ণনা
.Concatenation$string1 এবং $string2 কে একত্রিত করে অর্থাৎ পাশাপাশি বসায়।
.=Concatenation assignment$string এ নতুন ভ্যালু যোগ করে $string -কে বৃদ্ধি করে


উদাহরণঃ পিএইচপি String অপারেটর
<?php 
$string1 = "আমিরী ";
$string2 = "একাডেমী"; // string concatenation echo ($string1 . $string2) . "<br>"; $string = "আমিরী ";
$string .= "একাডেমী"; //Concatenation assignment echo $string; ;?>


ফলাফল
আমিরী একাডেমী
আমিরী একাডেমী

পিএইচপি array অপারেটর

দুই বা ততোধিক array-এর মধ্যে তুলনা করার জন্য পিএইচপি array অপারেটর ব্যবহার করা হয়।

অপারেটরনামবর্ণনা
+Union$a এবং $b এর সংযোগ ঘটায়।
==Equality$a এবং $b এর কী/ভ্যালু(key/value) একই হলে true রিটার্ন করে।
===Identity$a এবং $b এর কী/ভ্যালু(key/value) এবং অর্ডার ও টাইপ একই হলে true রিটার্ন করে।
!=Inequality$a এর কী/ভ্যালু(key/value) যদি $b এর সমান না হয়, তাহলে true রিটার্ন করে।
<>Inequality$a এর কী/ভ্যালু(key/value) যদি $b এর সমান না হয়, তাহলে true রিটার্ন করে।
!==Non-identity$a এর টাইপ যদি $b এর টাইপের মত না হয়, তাহলে true রিটার্ন করে।


উদাহরণঃ পিএইচপি array অপারেটর
<?php 
$a = array('e' => 'apple', 'f' => 'banana');
$b = array('g' => 'mango', 'h' => 'orange');

print_r($a + $b);

var_dump($a == $b);
var_dump($a === $b);
var_dump($a != $b);
var_dump($a <> $b);
var_dump($a !== $b);
;?>


ফলাফল
Array
(
    [e] => apple
    [f] => banana
    [g] => mango
    [h] => orange
)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)


পিএইচপি ফাংশন

পিএইচপি শক্তিশালি ল্যাঙ্গুয়েজ হওয়ার মূল কারণই হচ্ছে এর ফাংশন। কেননা পিএইচপিতে ১০০০ এর বেশি নিজস্ব(built-in) ফাংশন রয়েছে এবং এর সংখ্যা দিন দিন বেড়েই চলেছে।


পিএইচপি ইউজার কর্তৃক ফাংশন

পিএইচপির নিজস্ব ফাংশন থাকা সত্ত্বেও আমরা আমাদের প্রয়োজন অনুযায়ী ফাংশন তৈরি করতে পারি।

ফাংশন হচ্ছে একগুচ্ছ স্টেটমেন্ট যাকে আমরা প্রোগ্রামের মধ্যে বার বার ব্যবহার করতে পারি।

ফাংশন নিজে নিজে সম্পাদিত(execute) হয় না।

ফাংশনকে সম্পাদন(execute) করতে হলে অবশ্যই কল(call) করতে হবে।


পিএইচপিতে ইউজার কর্তৃক ফাংশন তৈরি

পিএইচপি ফাংশন তৈরি করতে প্রথমে "function" কী-ওয়ার্ড লিখতে হয় এর পরে ফাংশন এর নাম এর পরে () এবং {}

সিনট্যাক্স(Syntax)

function functionName() {
    সম্পাদিত কোড ;
} 

নোটঃ letter অথবা underscore দিয়ে ফাংশনের নাম শুরু হয়

টিপসঃ আপনার কাজের সাথে সঙ্গতি রেখে ফাংশনের নাম দিন!

পিএইচপিতে ফাংশনের নাম case-sensitive নয়।

নিচের উদাহরণে আমরা "welcomeMsg()" নামে একটি ফাংশন তৈরি করবো। ওপেনিং দ্বিতীয় বন্ধনীর(curly brace){ মাধ্যমে ফাংশনের কোড শুরু হয় এবং ক্লোজিং দ্বিতীয় বন্ধনীর(curly brace) } মাধ্যমে ফাংশন শেষ হয়। ফাংশনকে কল করার জন্য শুধু ফাংশনের নাম লিখতে হয়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
  function welcomeMsg(){
		echo "Welcome Guest";
	}
	welcomeMsg(); // ফাংশন কল
?>

</body>
</html>


ফলাফল
Welcome Guest

পিএইচপি ফাংশন প্যারামিটার

প্যারামিটারের মাধ্যমে ফাংশনে তথ্য সরবরাহ করা হয়। পিএইচপিতে প্যারামিটার ভ্যারিয়েবল এর মতই।

ফাংশনের নামের পরে প্রথম বন্ধনী()-র মধ্যে প্যারামিটার রাখা হয়। আপনার দরকার অনুযায়ী যত খুশি প্যারামিটার ব্যবহার করতে পারবেন, শুধু কমা(,) চিহ্নের মাধ্যমে প্যারামিটারগুলোকে আলাদা করতে হবে।

নিচের উদাহরণে ফাংশনের মধ্যে ১টি প্যারামিটার $name ব্যবহার করা হয়েছে। familyMember ফাংশনকে কল করার সময় এর মধ্যে প্যারামিটারের বিভিন্ন ভ্যালু যেমন- Azizur ব্যবহার করা হয়েছে, যার মাধ্যমে দ্বিতীয় নাম একই রেখে ভিন্ন ভিন্ন প্রথম নামের আউটপুট পাওয়া যায়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
	function familyMember($name) {
	 echo "আমিরী $name<br>";
} familyMember("মাহবুব"); familyMember("ছালেহ"); familyMember("জিহাদ"); familyMember("মতিউর"); familyMember("শরীফ"); ?>
</body> </html>


ফলাফল
আমিরী মাহবুব
আমিরী ছালেহ
আমিরী জিহাদ
আমিরী মতিউর
আমিরী শরীফ

নিচের ফাংশনে ২টি প্যারামিটার $name এবং $birthYear ব্যবহার করা হয়েছেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
  function familyMember($name, $birthYear) {
		echo "আমিরী $name, জন্ম সাল- $birthYear<br>";
} familyMember("মাহবুব", "১৯৮৫"); familyMember("ছালেহ", "১৯৯৪"); familyMember("জিহাদ", "১৯৯৪"); ?>
</body> </html>


ফলাফল
আমিরী মাহবুব, জন্ম সাল- ১৯৮৫
আমিরী ছালেহ, জন্ম সাল- ১৯৯৪
আমিরী জিহাদ, জন্ম সাল- ১৯৯৪

ডিফল্ট প্যারামিটার ভ্যালু

নিচের উদাহরণের সাহায্যে দেখবো কিভাবে ডিফল্ট(default) প্যারামিটার ব্যবহার করা হয়। যদি setNumber() ফাংশনকে কোনো ধরণের আর্গুমেন্ট ভ্যালু সরবরাহ না করি তাহলে এর ডিফল্ট ভ্যালু গ্রহণ করেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
  function setNumber($number = 5){
		echo "সংখ্যাটি হলোঃ $number <br>";
	}
	setNumber(15);
	setNumber(10);
	setNumber(); // এটি ডিফল্ট মানটি নিবে
?>

</body>
</html>


ফলাফল
সংখ্যাটি হলোঃ 15
সংখ্যাটি হলোঃ 10
সংখ্যাটি হলোঃ 5

পিএইচপি রিটার্ন ভ্যালু

ফাংশন থেকে ভ্যালু রিটার্ন করার জন্য return স্টেটমেন্ট ব্যবহার করা হয়ঃ 

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
	function calculate($numberOne, $numberTwo) {
	    $total = $numberOne + $numberTwo;
	    return $total;
	}

	echo "11 + 9 = " . calculate(11, 9) . "<br>";
	echo "8 + 7 = " . calculate(8, 7) . "<br>";
	echo "3 + 2 = " . calculate(3, 2);
?>

</body>
</html>


ফলাফল
11 + 9 = 20
8 + 7 = 15
3 + 2 = 5 


পিএইচপি গ্লোবাল ভ্যারিয়েবল

পিএইচপির ভার্সন 4.1.0 এ সুপারগ্লোবাল ভ্যারিয়েবলের সূচনা হয়। এই ভ্যারিয়েবলগুলো পিএইচপিতে বিল্ট-ইন থাকার কারণে স্ক্রিপ্ট এর যেকোনো স্কোপ থেকেই এগুলোকে এক্সেস/ব্যবহার করা যায়।


পিএইচপি সুপারগ্লোবাল

পিএইচপি সেট-আপের সময়ই কিছু পূর্ব সংজ্ঞায়িত ভ্যারিয়েবল পিএইচপির সাথে দেওয়া থাকে এগুলোই হচ্ছে পিএইচপির সুপারগ্লোবাল(Super global) ভ্যারিয়েবল।

নাম শুনেই বুঝা যাচ্ছে যে, কোন ধরনের স্কোপ বিবেচনা না করেই এগুলোকে যেকোন স্ক্রিপ্ট বা স্ক্রিপ্ট এর যেকোনো স্থান থেকে ব্যবহার/এক্সেস করা যায়। যেমন- আপনি ইচ্ছা করলে বিশেষ কোনো কিছু ছাড়াই এগুলোকে ফাংশন, ক্লাস, অথবা ফাইল থেকে ব্যবহার করতে পারবেন।

নিম্নে পিএইচপির সুপারগ্লোবাল ভ্যারিয়েবলগুলো উল্লেখ করা হলোঃ

$GLOBALS

গ্লোবাল ভ্যারিয়েবলসমূহকে যেকোনো স্কোপ থেকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

$_SERVER

Header, Path এবং Script location সম্মন্ধে বিভিন্ন তথ্য পাওয়ার জন্য এটি ব্যবহৃত হয়।

$_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_FILES

এটি একটি Two-dimensional associative array। যা ফাইল আপলোড এর সকল তথ্য ধারণ করে।

$_ENV

Environment variable

$_COOKIE

ইউজার সনাক্ত করার জন্য কুকি এক্সেস করতে এটি ব্যবহৃত হয়।

$_SESSION

Session ভ্যারিয়েবলকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

বিঃদ্রঃ সুপারগ্লোবাল ভ্যারিয়েবলসমূহ এসোসিয়েটিভ এ্যারে এসোসিয়েটিভ এ্যারের এলিমেন্ট সমূহ key:value জোড়ায় জোড়ায় থাকে।

এই অধ্যায়ে কিছু সুপারগ্লোবাল ভ্যারিয়েবল সম্মন্ধে আলোচনা করা হয়েছে। 


পিএইচপি $GLOBALS

$GLOBALS হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল এবং associative array। যেকোনো স্থান(ফাংশন এবং মেথড এর মধ্য থেকেও) থেকে গ্লোবাল ভ্যারিয়েবলকে এক্সেস করার জন্য $GLOBALS কিওয়ার্ড ব্যাবহার করা হয়।

পিএইচপি সকল গ্লোবাল ভ্যারিয়েবলকে $GLOBALS[index] array এর মধ্যে জমা রাখে। index এর মধ্যে ভ্যারিয়েবলের নাম জমা রাখে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে সুপারগ্লোবাল ভ্যারিয়েবল $GLOBALS কে ব্যবহার করা যায়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$numberOne = 55;
$numberTwo = 44;

function sum(){
	$GLOBALS['total'] = $GLOBALS['numberOne'] + $GLOBALS['numberTwo'];
}

sum();
echo $total;
?>

</body>
</html>


ফলাফল
99

উপরের উদাহরণে, z ভ্যারিয়েবলটি $GLOBALS array এর মধ্যে অবস্থান করার কারণে এটাকে ফাংশনের বাইরে থেকেও এক্সেস করা যাচ্ছে!


পিএইচপি $_SERVER

$_SERVER হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল যা header, path এবং script location সম্মন্ধে বিভিন্ন তথ্য ধারণ করে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে $_SERVER ভ্যারিয়েবলকে ব্যবহার করা যায়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
echo $_SERVER['PHP_SELF']. "<br>";
echo $_SERVER['SERVER_NAME']. "<br>";
echo $_SERVER['HTTP_HOST']. "<br>";
echo $_SERVER['HTTP_REFERER']. "<br>";
echo $_SERVER['HTTP_USER_AGENT']. "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

</body>
</html>


ফলাফল
/php/php-super-globals.php
amiri.eu.org
amiri.eu.org
https://amiri.eu.org/php/php-functions.php
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
/php/php-super-globals.php

নিচের টেবিলে $_SERVER ভ্যারিয়েবলের মধ্যে ব্যবহৃত অধিকাংশ কনস্ট্যান্ট এর সংক্ষিপ্ত আলোচনা করা হলোঃ

$_SERVER['PHP_SELF']

সম্প্রতি যে স্ক্রিপ্ট সম্পাদিত(execution) হয় তার ফাইলের নাম রিটার্ন করে।

$_SERVER['GATEWAY_INTERFACE']

সার্ভার যে কমন গেটওয়ে ইন্টারফেস(CGI) ব্যবহার করে তার ভার্সন রিটার্ন করে।

$_SERVER['SERVER_ADDR']

হোস্ট সার্ভারের IP এড্রেস রিটার্ন করে।

$_SERVER['SERVER_NAME']

হোস্ট সার্ভারের নাম রিটার্ন করে। যেমন- amiri.eu.org

$_SERVER['SERVER_SOFTWARE']

সার্ভারের জন্য ব্যবহৃত সফটওয়্যার এবং এর ভার্সন রিটার্ন করে। (যেমন- Apache/2.4.25 )

$_SERVER['SERVER_PROTOCOL']

ইনফরমেশন প্রোটোকলের নাম এবং রিভিশন(revision) রিটার্ন করে। (যেমন HTTP/1.1)

$_SERVER['REQUEST_METHOD']

কোনো পেজকে এক্সেস করার জন্য এর রিকুয়েস্ট মেথড(যেমন- POST) রিটার্ন করে।

$_SERVER['REQUEST_TIME']

রিকুয়েস্ট শুরু হওয়ার টাইমস্ট্যাম্প রিটার্ন করে। (যেমন- 1377687496)

$_SERVER['QUERY_STRING']

যদি কোনো পেজ কুয়েরি স্ট্রিং দ্বারা এক্সেস করা হয় তাহলে কুয়েরি স্ট্রিং রিটার্ন করে।

$_SERVER['HTTP_ACCEPT']

বর্তমান রিকুয়েস্ট থেকে Accept header রিটার্ন করে।

$_SERVER['HTTP_ACCEPT_CHARSET']

বর্তমান রিকুয়েস্ট থেকে Accept_Charset header রিটার্ন করে। (যেমন utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']

বর্তমান রিকুয়েস্ট থেকে Host header রিটার্ন করে।

$_SERVER['HTTP_REFERER']

বর্তমান পেজের সম্পূর্ণ URL রিটার্ন করে (বিশ্বাসযোগ্য নয় কারন সকল user-agents এ সাপোর্ট করে না)

$_SERVER['HTTPS']

স্ক্রিপ্টটি কি সিকিউর HTTP প্রোটোকলের মধ্য দিয়ে কুয়েরি হচ্ছে কিনা?

$_SERVER['REMOTE_ADDR']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই IP এড্রেস রিটার্ন করে।

$_SERVER['REMOTE_HOST']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই Host নাম রিটার্ন করে।

$_SERVER['REMOTE_PORT']

ব্যবহারকারীর ডিভাইস থেকে সার্ভারের সাথে যোগাযোগ(communicate) করার জন্য যে পোর্ট(port) ব্যবহার হচ্ছে সেটিকে রিটার্ন করে।

$_SERVER['SCRIPT_FILENAME']

বর্তমানে যে স্ক্রিপ্টটি এক্সিকিউট হচ্ছে সেটির absolute pathname রিটার্ন করে।

$_SERVER['SERVER_PORT']

যোগাযোগের জন্য ওয়েব সার্ভারের সার্ভার মেশিন যে পোর্ট ব্যবহার করে সেটি রিটার্ন করে। (যেমন 80)

$_SERVER['SERVER_SIGNATURE']

server-generated পেজের সাথে যুক্ত সার্ভার ভার্সন এবং ভার্চুয়াল হোস্ট এর নাম রিটার্ন করে।

$_SERVER['PATH_TRANSLATED']

বর্তমান স্ক্রিপ্টের ফাইল সিস্টেম বেস(base) path রিটার্ন করে।

$_SERVER['SCRIPT_NAME']

কারেন্ট স্ক্রিপ্টের পথ রিটার্ন করে।

$_SERVER['SCRIPT_URI']

কারেন্ট পেজের URI কে রিটার্ন করে।


পিএইচপি $_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST ব্যবহার করা হয়।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য <form> ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছে। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউটে = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST এর মাধ্যমে ডেটা কালেক্ট করতে পারেনঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  নামঃ <input type="text" name="fullname">
  <input type="submit" value="Name Submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // ইনপুট ফিল্ডের ভ্যালু কালেক্ট
    $name = $_REQUEST['fullname'];
    if (empty($name)) {
        echo "নাম পূরন করা হয়নি";
    } else {
        echo "আপনার পূরনকৃত নামঃ". $name;
    }
}
?>

</body>
</html>


ফলাফল

পিএইচপি $_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য সুপার গ্লোবাল ভ্যারিয়েবল $_GET ব্যবহৃত হয়।

URL এর মধ্য দিয়ে পাঠানো ডেটাও $_GET এর মাধ্যমে কালেক্ট করা যায়।

মনে করুন আপনার এইচটিএমএল পেজে প্যারমিটার সহ হাইপারলিংক আছেঃ

<html>
<body>

  <a href="get.php?subject=PHP&web=amiri.eu.org">Test $GET</a>

</body>
</html>

যখন কোনো ইউজার "Test $GET" লিংক এ ক্লিক করে, তখন প্যারামিটার "subject" এবং "web" কে "test_get.php" এর কাছে পাঠানো হয়, এবং এরপরে আপনি "test_get.php" এর মধ্যে $_GET এর সাহায্যে তাদের ভ্যালুগুলোকে এক্সেস করতে পারবেন।

নিচের উদাহরণে "test_get.php"এর মধ্যে ব্যবহৃত কোড দেখানো হলোঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
  echo $_GET['web'] . " এ " . $_GET['subject'] . " শিখুন।";
?>

</body>
</html>


ফলাফল

পিএইচপি $_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_POST ব্যপকভাবে ব্যবহৃত হয়। বিশেষকরে ভ্যারিয়েবল পাস(pass) করানোর জন্য $_POST এর ব্যবহার চোখে পড়ার মত।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য <form> ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছি। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউট = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_POST এর মাধ্যমে ইনপুট ফিল্ডের ডেটা কালেক্ট করতে পারেনঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  নামঃ <input type="text" name="fullname">
  <input type="submit" value="Name Submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // ইনপুট ফিল্ডের ভ্যালু কালেক্ট
    $name = $_POST['fullname'];
    if (empty($name)) {
        echo "নাম পূরন করা হয়নি";
    } else {
        echo "আপনার পূরনকৃত নামঃ". $name;
    }
}
?>

</body>
</html>


ফলাফল