Tag Archives: Variable

পাইথন প্রোগ্রামিং : ভেরিয়েবল টাইপ (Python Variable Types in bangla)

Huge Sell on Popular Electronics

1.5 Python Variable Types

ভেরিয়েবল হচ্ছে মেমোরি তে নির্ধারিত জায়গা (স্পেস) যেখানে বিভিন্ন জিনিসের মান (value) স্টোর করে রাখা হয়। ভেরিয়েবল তৈরি করা মানেই কম্পিউটারের মেমোরিতে একটা নির্দৃষ্ট স্পেস সঞ্চয় করে রাখা। যেকোনো ভেরিয়েবল কি ধরনের ডাটা রেকর্ড/ স্টোর করবে সেটা নির্ভর করে ভেরিয়েবল উপর।

Python এ সমতা চিহ্নের (=) মাধ্যমে যেকোনো ধরনের মান (value) ভেরিয়েবল হিসেবে স্টোর করা যায়, এক্ষেত্রে আলাদা করে কোন ডিক্লারেশনের প্রয়োজন নেই। সমতা চিহ্নের বাম পাশে ব্যবহৃত শব্দটি ভেরিয়েবলের নাম এবং ডান পাশের সংখ্যাটি ভেরিয়েবলের মান নির্দেশ করে। যেমন,


#!/usr/bin/python

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string

print counter
print miles
print name

উপরের প্রোগ্রামটির ফলাফল হবে এমন,


1001000.0


 

Python এ একাধিক ভেরিয়েবলের জন্য একটি নির্দৃষ্ট মান স্টোর করা যায়। আবার একাধিক ভেরিয়েবলের জন্য যথাক্রমে একাধিক মানও একসাথে স্টোর করা যায়। যেমন,


a = b = c = 1


 

এবং


a, b, c = 1, 2, "john"


 

প্রথম প্রোগ্রামটিতে a, b এবং c এর মান 1 স্টোর করা হয়েছে, আর দ্বিতীয় প্রোগ্রামটিতে a, b এবং c এর মান যথাক্রমে 1, 2 এবং john স্টোর করা হয়েছে।

Python এ ৫ ধরনের স্ট্যান্ডার্ড ডাটা টাইপ আছে। যেমন,

  • Numbers
  • String
  • List
  • Tuple
  • Dictionary

Numbers

Numbers হচ্ছে যেকোনো প্রকারের সংখ্যা। Python ৪ ধরনের সংখ্যা (Numbers) সাপোর্ট করে। যেমন,

  • int (ছোট পূর্ণসংখ্যা)
  • long (বড় পূর্ণসংখ্যা, octal কিংবা hexadecimal আকারে প্রকাশ করা যায়)
  • float (বাস্তব সংখ্যার কাছাকাছি মান)
  • complex (জটিল সংখ্যা)

নিচের টেবিলে কিছু সংখ্যার উদাহরণ দেয়া হলঃ

int long float complex
10 51924361L 0.0 3.14j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J

 

Strings

Strings হচ্ছে কোটেশান মার্কের (“”) ভেতর ব্যবহৃত বর্ণ/ শব্দ সমূহ। বিভিন্ন রকমের slice operator ([ ] and [:]) এর সাহায্য নিয়ে নির্ধারিত string এর অংশবিশেষ অথবা বিভিন্ন পূনর্বিন্যাস আউটপুট হিসেবে দেখা যায়। যেমন,


#!/usr/bin/python

str = 'Hello World!'

print str          # Prints complete string
print str[0]       # Prints first character of the string
print str[2:5]     # Prints characters starting from 3rd to 5th
print str[2:]      # Prints string starting from 3rd character
print str * 2      # Prints string two times
print str + "TEST" # Prints concatenated string

 

উপরের প্রোগ্রামটির ফলাফল হবে,


Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

 

Lists

List হল তৃতীয় ব্র্যাকেট ([ ]) এ আবদ্ধ, ও কমা (commas) দিয়ে আলাদা করা আইটেম। যেমন,


#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd 
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists

 

উপরের প্রোগ্রামটির রেসাল্ট হবে,


['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

 

Tuples

Tuple আর List মূলত একই রকম, শুধু পার্থক্য হচ্ছে যে Tuple এ প্রথম ব্র্যাকেট ( ) ব্যবহৃত হয়, কিন্তু List এ তৃতীয় ব্র্যাকেট [ ] ব্যবহার হয়। এছাড়াও Tuple এর মান পরে পরিবর্তন করা যায়না (read-only values), কিন্তু List এর মান আপডেট করা যায়। Tuple এর উদাহরনঃ


#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print tuple           # Prints complete list
print tuple[0]        # Prints first element of the list
print tuple[1:3]      # Prints elements starting from 2nd till 3rd 
print tuple[2:]       # Prints elements starting from 3rd element
print tinytuple * 2   # Prints list two times
print tuple + tinytuple # Prints concatenated lists

 

উপরের প্রোগ্রামের ফলাফলঃ


('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

 

নিচের Tuple কোডটি ভুল, কারন এখানে Tuple এর মান পরিবর্তন/ আপডেট করার চেষ্টা করা হয়েছে। কিন্তু List এর জন্য কোডটি ঠিক আছে।


#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

 

Dictionary

Dictionary দিয়ে Key-Value জোড়ায় জোড়ায় থাকে। যেকোনো ডাটা টাইপ Key হতে পারে, যদিও সাধারণত numbers বা strings ই Key হিসেবে রেকর্ডেড হয়। অন্যদিকে, যেকোনো সংখ্যা/ অবজেক্টই Value হিসেবে রেকর্ড হতে পারে। Dictionary দ্বিতীয় ব্র্যাকেট { } এর সাহায্যে প্রকাশ করা হয় এবং তৃতীয় ব্র্যাকেটের সাহাজে Doctionary তে Value এসাইন করা হয়। যেমন,


#!/usr/bin/python

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

 

উপরের কোড এর রেসাল্ট হবে −


This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']


এখানে উল্লেখ্য যে, Dictionary তে ক্রম, সিরিয়াল বা অর্ডার ঠিক রাখার কোন ব্যপার নেই।

 

Data Type Conversion

Python এ একধরনের ডাটা টাইপ থেকে আরেকটিতে রূপান্তর করার জন্য কিছু বিল্ট-ইন ফাংশন আছে, যেগুলো আউটপুট হিসেবে পরিবর্তিত মান সহ নতুন অবজেক্ট তৈরি করে। নিচে কিছু ফাংশন ও তাদের অর্থ দেয়া হলঃ

ফাংশন বর্ননা
int(x [,base]) x কে একটি পূর্ণসংখ্যায় রূপান্তর করে, এবং base লিখাটি বেস কে নির্দেশ (specify) করে যদি x একটি স্ট্রিং হয়।
long(x [,base] ) x কে একটি দীর্ঘ পূর্ণসংখ্যায় রূপান্তর করে, এবং base লিখাটি বেস কে নির্দেশ (specify) করে যদি x একটি স্ট্রিং হয়।
float(x) x কে একটি floating-point সংখ্যায় রূপান্তর করে।
complex(real [,imag]) জটিল সংখ্যা তৈরি করে।
str(x) x কে একটি string representation এ রূপান্তর করে।
repr(x) x কে একটি expression string এ রূপান্তর করে।
eval(str) একটি string কে এভালুয়েট করে এবং একটি নতুন অবজেক্ট সৃষ্টি করে।
tuple(s) s কে একটি tuple এ রূপান্তর করে।
list(s) s কে list এ রূপান্তর করে।
set(s) s কে set এ রূপান্তর করে।
dict(d) একটি dictionary তৈরি করে। তবে, d কে অবশ্যই (key,value) ফরম্যাট এর tuples হতে হবে.
frozenset(s) s কে frozen set এ রূপান্তর করে।
chr(x) একটি integer কে একটি character এ রূপান্তর করে।
unichr(x) একটি integer কে একটি Unicode character এ রূপান্তর করে।
ord(x) একটি single character কে এর পূর্ণ-সাঙ্খ্যিক (integar) মানে প্রকাশ করে।
hex(x) একটি integer কে একটি hexadecimal string এ রূপান্তর করে।
oct(x) একটি integer কে একটি octal string এ রূপান্তর করে।

 

ইউনিক্সঃ স্পেশাল ভেরিয়েবলস (Unix – Special Variables)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

পূর্ববর্তী টিউটোরিয়ালে ভেরিয়েবল নামে নন আলফানিউমেরিক ক্যারেক্টার ব্যবহার বিষয়ে সতর্ক করা হয়েছিল, কারণ ইউনিক্স চলকে এদের ভিন্ন অর্থ হয়।

যেমন, $ ক্যারেক্টার কারেন্ট সেলে আইডি নাম্বার বা পিআইডি প্রক্রিয়া বোঝায়।


$echo $$


 

উপরের কম্যান্ড কারেন্ট সেলের পিআইডি যেভাবে বোঝায়,


29949


 

নিচের ছকে সেল স্ক্রিপ্টে ব্যবহার করা যায় এমন স্পেশাল ভেরিয়েবল দেখানো হল,

Variable Description
$0 কারেন্ট স্ক্রিপ্টের ফাইল নেম
$n এই চলক সেসব আর্গুমেন্টের সাথে সমন্বয় করে যারা স্ক্রিপ্টকে সাহায্য করে।
$# স্ক্রিপ্টে সরবরাহ করা আর্গুমেন্টের সংখ্যা
$* সব আর্গুমেন্ট ডাবল কোটেড। কোনও স্ক্রিপ্ট দুটি আর্গুমেন্ট রিসিভ করলে $* , $1 $2 এর সমপর্যায়ের।
$@ সব আর্গুমেন্ট স্বতন্ত্রভাবে ডাবল কোটেড। কোনও স্ক্রিপ্ট দুটি আর্গুমেন্ট রিসিভ করলে $@, $1 $2 এর সমপর্যায়ের।
$? সর্বশেষ সম্পাদিত কম্যান্ডের এক্সিট স্ট্যাটাস
$$ কারেন্ট সেলের প্রসেস নাম্বার
$! সর্বশেষ ব্যাকগ্রাউন্ড সেলের প্রসেস নাম্বার

 

কম্যান্ড লাইন আর্গুমেন্টঃ কম্যান্ড লাইন আর্গুমেন্ট $1, $2, $3,...$9 হল পজিসনাল প্যারামিটার যার $0 প্রকৃত কম্যান্ড, সেল স্ক্রিপ্ট,প্রোগ্রাম বা ফাংশন ও $1, $2, $3, ...$9 হল কম্যান্ডের আর্গুমেন্ট।

নিচের স্ক্রিপ্ট কম্যান্ড লাইন সংশ্লিষ্ট বিভিন্ন স্পেশাল ভেরিয়েবলস ব্যবহার করে,


#!/bin/sh

echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

 

নিচে উপরের স্ক্রিপ্টের পরীক্ষামূলক সম্পাদন দেয়া হল,


$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2

 

স্পেশাল প্যারামিটার $* and $@ঃ কম্যান্ড লাইন আর্গুমেন্টে ঢোকার জন্য স্পেশাল প্যারামিটার আছে, $* ও $@ এমন স্পেশাল প্যারামিটার, যারা ডাবল কোটে আবদ্ধ হওয়ার আগ পর্যন্ত একই রকম প্রতিক্রিয়া দেখায়। আমরা অজানা সংখ্যক কম্যান্ড লাইন আর্গুমেন্টের প্রক্রিয়ার জন্য $* বা $@ যেকোনো স্পেশাল প্যারামিটার দিয়ে সেল স্ক্রিপ্ট লিখতে পারি।


#!/bin/sh
 
for TOKEN in $*
do
   echo $TOKEN
done

 

উপরের স্ক্রিপ্টের পরীক্ষামূলক সম্পাদন


$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old

 

এক্সিট স্ট্যাটাস

$?চলক পূর্ববর্তী কম্যান্ডের এক্সিট স্ট্যাটাস নির্দেশ করে। এক্সিট স্ট্যাটাস হল একপ্রকারের নিউমেরিক্যাল মান যা কম্যান্ড সম্পন্ন হওয়ার সাথে সাথে আবর্তিত হয়।

নিচে সফল কম্যান্ডের উদাহরণ দেয়া হল,


$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$


 

ইউনিক্সঃ সেল ভেরিয়েবল বা চলক ব্যবহার করা (Unix – Using Shell Variables)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

ভেরিয়েবল বা চলক একপ্রকারের ক্যারেক্টার স্ট্রিং যেটিতে আমরা মান আরোপ করি। এই মান সংখ্যা, টেক্সট, ফাইলনেম, ডিভাইস বা যেকোনো ডাটাও হতে পারে। চলক আসলে মূল ডাটার নির্দেশক বই কিছু নয়।

 

চলকের নাম

চলকের নাম অক্ষর, সংখ্যা বা আন্ডারস্কোর বিশিষ্ট হতে পারে। ইউনিক্স সেল চলকের নাম বড় হাতের অক্ষরের হয়।

নিচের উদাহরণ চলকের গ্রহণযোগ্য উদাহরণ


_ALI
TOKEN_A
VAR_1
VAR_2

 

আবার নিচের উদাহরণ চলকের গ্রহণযোগ্য উদাহরণ না।


2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

এক্ষেত্রে !,*, বা – ব্যবহার করা যাবে না বলেই এটি বৈধ উদাহরণ না। সেলের ক্ষেত্রে এগুলোর স্বতন্ত্র মানে দাঁড়ায়।

 

চলক বিবৃতি

চলককে নিচের কোড দ্বারা বিবৃত করা হয়।


variable_name=variable_value


 

উদাহরণস্বরূপ,


NAME="Zara Ali"


 

এই উদাহরণে NAME হল চলক আর "Zara Ali" হল এতে আরোপিত মান। এধরনের চলককে স্কেলার চলক বলে, একক সময়ে এগুলো একটি মাত্র মান ধারণ করে।

চলকে আমরা যে মান চাই সেল তাই সংরক্ষণের সুযোগ দেয়। যেমন,


VAR1="Zara Ali"
VAR2=100

 

মানে প্রবেশ করা

চলকে সংরক্ষিত মানে প্রবেশ করতে হলে নামের সাথে ( $) চিহ্ন ব্যবহার করতে হয়।

যেমন,


#!/bin/sh
NAME="Zara Ali"
echo $NAME

 

উপরের কোড যে ফলাফল দেখাবে তা হল,


ZaraAli


 

রিড অনলি চলক

readonly কম্যান্ড দ্বারা নির্ধারিত এই চলকের মান পরবর্তীতে আর পরিবর্তন করা যায় না।

 

যেমন নিচের উদাহরণে কোনও নামের মান পরিবর্তন করলে তা ভুল চলক হয়ে যাবে।


#!/bin/sh
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

 

যার ফলে যে ফলাফল হবে তা হল,


/bin/sh: NAME:This variableis read only.

 

আনসেটিং চলক

কোনও চলককে আনসেট করার পর সেটিতে আর কোনও মান আরোপ করা যায় না।

নিচের উদাহরণে unset কম্যান্ড ব্যবহার করে বিবৃত চলককে আনসেট করার সিনট্যাক্স ব্যবহার করা হয়,


 unset variable_name

 

নিচে এর একটি উদাহরণ দেয়া যাক,

#!/bin/sh


NAME="Zara Ali"
unset NAME
echo $NAME

 

চলকের প্রকারভেদ

সেল সক্রিয় থাকার সময় তিন প্রকারের চলক দেখা যায়,

  • লোকাল চলক,
  • এনভায়রনমেন্ট চলক,
  • সেল চলক।

 

পিএইচপি ৫ ভেরিয়েবল (PHP 5 Variables)

Huge Sell on Popular Electronics

আক্তারুজ্জামান

Department of CSE,University of Chittagong.

 

ভেরিয়েবল হচ্ছে একটি স্টোরেজ এরিয়া । এইটিকে কমপিউটারের ডাটা জমা রাখার একটি অস্থায়ী বক্সের মত কল্পনা করা যায়। পিএইচপি তে ভেরিয়েবলকে ডলার চিহ্ন এবং এর পরে ভেরিয়েবলের নাম দ্বারা প্রদর্শন করা হয়। নিচে একটি উদাহরণ দিয়ে বিষয়টি বোজানো হয়েছে।


< ?php
 $text = "Hello World!";
 $num1 = 5;
 $num2 = 10.5;
 ?>

উপরের স্টেটমেন্টটা এক্সিকিউট হওয়ার পর ভেরিয়েবল $text এ থাকবে “Hello world!”, ভেরিয়েবল $num1 এ থাকবে 5 এবং ভেরিয়েবল $num2 এ থাকবে 10.5.

ভেরিয়েবল লেখার সময় আমাদের কিছু নিয়ম অনুসরণ করতে হবে, যেমনঃ

 ভেরিয়েবল সবসময় ডলার চিহ্ন দ্বারা আরম্ভ হবে এবং এর পরে ভেরিয়েবলের নাম লিখতে হবে।

 ভেরিয়েবলের নাম অবশ্যই লেটার অথবা আণ্ডারস্কোর ক্যারেকটার দ্বারা আরম্ভ করতে হবে। কখনো নাম্বার দিয়ে আরম্ভ করা যাবে না।

 আলফা-নিউমেরিক এবং আণ্ডারস্কোর ক্যারেকটার (A-z,0-9,-) ছারা অন্য কিছু ভেরিয়েবলে ব্যাবহার করা যাবে না।

 পিএইচপি তে ভেরিয়েবল কেস সেনসিটিভ । অর্থাৎ $name এবং $NAME দুইটা ভিন্ন ভেরিয়েবল হিসেবে বিবেচিত হবে।

ভেরিয়েবলের ডাটা আঊটপূটে দেখানোর জন্য পিএইচপি এর echo স্টেটমেন্টটা ব্যাবহার করতে হবে। নিচে একটি উদাহরণ দিয়ে বিষয়টি বোজানো হয়েছে।


< ?php
 $myName = "john";
 $myAge = 40;
 echo "Hello, there. My name is $myName and I am $myAge years old"
 ?>

 

 

এই কোডটার আঊটপূট হবে নিচের মত


Hello, there. My name is john and I am 40 years old.


 

 

পিএইচপি ৫ গ্লোবাল ভেরিয়েবলস (PHP 5 Global Variables – Superglobals)

Huge Sell on Popular Electronics

Superglobals যা কিনা সবসময় অ্যাক্সেস করা যায়। যেকোনো ক্লাস, ফাইল, অথবা ফাংশন এ এই superglobals অ্যাক্সেস করা যায় কোন কিছুর সাহায্য ছারাই।

এই variable গুলো হল

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

 

$GLOBALS

$GLOBALS একটি পিএইচপি এর গ্লোবাল variable যা পিএইচপি script এর যেকোনো জায়গায় গ্লোবাল variables গুলোকে অ্যাক্সেস করতে সাহায্য করে। পিএইচপি সমস্ত গ্লোবাল variable গুলোকে একটি array এর মধ্যে জমা করে $GLOBALS[index]। থার্ড বন্ধনীর মধ্যে লেখা index হল variable এর একটি নাম।

$GLOBALS ব্যবহার করে একটি উদাহরণ


<?php 
 $x = 75; 
 $y = 25;
  
 function addition() { 
     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
 }
  
 addition(); 
 echo $z; 
 ?>

যার ফলাফল হবে ১০০। global array এর মধ্যে একটি variable যা কিনা ফাংশন এর বাইরেও অ্যাক্সেস করা যায়।

 

PHP S_SERVER

$_SERVER পিএইচপি এর একটি সুপার গ্লোবাল variable যা script এর অবস্থান, headers, paths এই বিষয়গুল ধারণ করে।

একটি উদাহরণ যদি লক্ষ্য করি


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

 

$_SERVER এর কিছু গুরুত্বপূর্ণ elements

$_SERVER['PHP_SELF'] বর্তমানে গণনাকৃত script এর নামটি পেতে এই element ব্যবহার করা হয়।
$_SERVER['GATEWAY_INTERFACE'] কমন গেটওয়ে ইন্টারফেস এর version পাওয়ার জন্য ব্যবহার করা হয়
$_SERVER['SERVER_ADDR'] host সার্ভার এর IP এড্রেস পাওয়ার জন্য
$_SERVER['SERVER_NAME'] host সার্ভার এর নাম পাওয়ার জন্য যেমন www.w3schools.com
$_SERVER['SERVER_SOFTWARE'] সার্ভার এর পরিচিতি পাওয়ার জন্য যেমন Apache/2.2.24
$_SERVER['SERVER_PROTOCOL'] Information protocol এর নাম পাওয়ার জন্য যেমন HTTP/1.1
$_SERVER['REQUEST_METHOD'] এই মেথড পেজ কে অ্যাক্সেস করার জন্য ব্যবহার করা হয়। যেমন post
$_SERVER['REQUEST_TIME'] request এর শুরু থেকে timestamp জানার জন্য।
$_SERVER['QUERY_STRING'] যদি কোন পেজ query string দ্বারা অ্যাক্সেস হয়ে থাকে তবে তা পাওয়ার জন্য
$_SERVER['HTTP_ACCEPT'] বর্তমান request হইতে header কে অনুমোদন করার জন্য
$_SERVER['HTTP_ACCEPT_CHARSET'] বর্তমান request হইতে Accept_Charset header পাওয়ার জন্য যেমন utf-8,ISO-8859-1
$_SERVER['HTTP_HOST'] বর্তমান request হতে header host পাওয়ার জন্য
$_SERVER['HTTP_REFERER'] বর্তমান পেজ এর পুরো url পাওয়ার জন্য
$_SERVER['HTTPS'] নিরাপদ HTTP Protocol এর মধ্য দিয়ে কোন script query করার জন্য।
$_SERVER['REMOTE_ADDR'] ইউজার এর IP এড্রেস পাওয়ার জন্য
$_SERVER['REMOTE_HOST'] ইউজার এর host নাম পাওয়ার জন্য
$_SERVER['REMOTE_PORT'] ইউজার এর machine এর পোর্ট নাম্বার পাওয়ার জন্য যা দিয়ে সে ওয়েবসারভার এর সাথে যোগাযোগ করতেছে
$_SERVER['SCRIPT_FILENAME'] রানিং script এর সঠিক পাথ নাম পাওয়ার জন্য
$_SERVER['SERVER_PORT'] সার্ভার machine এর পোর্ট নাম্বার পাওয়ার জন্য যা ওয়েব সার্ভার এর যোগাযোগ এর ক্ষেত্রে ব্যবহার করা হয়। যেমন ৮০
$_SERVER['SERVER_SIGNATURE'] সার্ভার ভারসন এবং virtual hostname পাওয়ার জন্য
$_SERVER['PATH_TRANSLATED'] বর্তমান script এর ফাইল সিস্টেম এর পাথ পাওয়ার জন্য
$_SERVER['SCRIPT_NAME'] বর্তমান script এর পাথ পাওয়ার জন্য
$_SERVER['SCRIPT_URI'] বর্তমান পেজ এর URL পাওয়ার জন্য

PHP $_REQUEST

এইচটিএমএল এর ফর্ম সাবমিট করার পর ডাটা কালেক্ট করার জন্য এই মেথড ব্যবহার করা হয়


<html>
 <body>
 
 <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
   Name: <input type="text" name="fname">
   <input type="submit">
 </form>
 
 <?php
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
     // collect value of input field
     $name = $_REQUEST['fname'];
     if (empty($name)) {
         echo "Name is empty";
     } else {
         echo $name;
     }
 }
 ?>
 
 </body>
 </html>

একটি সাবমিট বাঁটন ও একটি ইনপুট ফিল্ড নিয়ে এই script টি তৈরি করা হয়েছে যখন ইউজার ইনপুট ফিল্ড এ কোন কিছু টাইপ করে সাবমিট করবে সাবমিট করার পর তার টাইপ করা ওয়ার্ড টি সে দেখতে পাবে। আমরা সুপার গ্লোবাল variable হিসেবে $_REQUEST ব্যবহার করতে পারি ইনপুট ফিল্ড থেকে ডাটা কালেক্ট করার জন্য

PHP $_POST

এই মেথড ব্যবহার করা হয় ফর্ম এর ডাটা কালেক্ট করার জন্য। বিশদভাবে variable পাস করার জন্য এই মেথড ব্যবহার করা হয়


<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>


একটি সাবমিট বাঁটন ও একটি ইনপুট ফিল্ড নিয়ে এই script টি তৈরি করা হয়েছে যখন ইউজার ইনপুট ফিল্ড এ কোন কিছু টাইপ করে সাবমিট করবে সাবমিট করার পর তার টাইপ করা ওয়ার্ড টি সে দেখতে পাবে। আমরা সুপার গ্লোবাল variable হিসেবে $_POST ব্যবহার করতে পারি ইনপুট ফিল্ড থেকে ডাটা কালেক্ট করার জন্য

PHP $_GET

এই মেথড ব্যবহার করা হয় ফর্ম সাবমিট করার পর ডাটা কালেক্ট করার জন্য এই মেথড ব্যবহার করে Url এর মাধ্যমেও ডাটা কালেক্ট করা যায়। মনে করি আমাদের একটি পেজ আছে যেখানে hyperlink দেওয়া আছে সেই লিঙ্ক থেকে অন্য পেজ এ যাওয়ার মাধ্যমে আমরা url থেকে ডাটা কালেক্ট করব।


<html>
 <body>
 
 <a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>
 
 </body>
 </html>

 

যখন ইউজার লিঙ্ক এ ক্লিক করবে তখন এই পেজ test_get.php এ সে যাবে। তখন ইউজার value অ্যাক্সেস করতে পারবে

উদাহরণ :


 <html>
 <body>
 
 <?php 
 echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
 ?>
 
 </body>
 </html>

 

 

লেকচার – ০৩: সি++ প্রোগ্রামিং- ভেরিয়েবল এবং এক্সপ্রেশন (Variables and Expressions)

Huge Sell on Popular Electronics