SATT ACADEMY

New to Satt Academy? Create an account


or

Log in with Google Account

Academy
Please, contribute to add content into পিএইচপি টিউটোরিয়াল - PHP Tutorial.
Content

পিএইচপি(PHP) একটি সার্ভার স্ক্রিপ্টিং ল্যাংগুয়েজ এবং ওয়েব পেজকে ডায়নামিক ও সুদর্শনীয় করে তোলার জন্য একটি শক্তিশালী অবকাঠামো।

পিএইচপি হল সার্বজনীন, ফ্রি এবং মাইক্রোসফট এএসপি এর প্রতিদ্বন্দ্বী।

পিএইচপি টিউটোরিয়াল এর প্রতিটি পরিচ্ছেদে আছে অসংখ্য উদাহরণ সেকশন। আপনি উদাহরণ সেকশনে মাউস নিয়ে গেলে উপরের কোণায় কোড copy করার একটি অপশন দেখতে পাবেন। copy অপশনে মাউস ক্লিক করলে ক্লিপবোর্ডে কোড কপি হবে।

আপনি আপনার এডিটর ওপেন করে copy করা কোড paste করতে পারবেন। এছাড়া উদাহরণ সেকশনের নিচে উদাহরণের ফলাফলও দেখানো হয়েছে।

সহজ পদ্ধতিতে পিএইচপি শিখুন

আমাদের "ফলাফল" অংশ আপনার পিএইচপি শেখা সহজ করে দিবে। কেননা, এটির মাধ্যমে আপনি একই সাথে পিএইচপি সোর্স কোড এবং এইচটিএমএল কোডের আউটপুট দেখতে পারবেন।

kt_satt_skill_example_id=4

 

পিএইচপি শেখা শুরুর পূর্ব শর্তসমূহ

পিএইচপি শেখা শুরু করার পূর্বে নিচের বিষয়গুলোর উপর আপনার সাধারণ ধারনা থাকতে হবেঃ

পিএইচপি কি?

  • PHP এর পূর্ণরুপঃ "Hypertext Preprocessor"
  • পিএইচপি বহুল ব্যবহৃত এবং একটি ওপেন সোর্স স্ক্রিপ্টিং ল্যাংগুয়েজ
  • পিএইচপি স্ক্রিপ্টসমূহ সার্ভারে সম্পাদিত হয়
  • পিএইচপি ডাউনলোড এবং ব্যবহার সম্পূর্ন ফ্রি

পিএইচপি একটি চমৎকার এবং জনপ্রিয় ল্যাংগুয়েজ

  • এটি এতটাই শক্তিশালী যে, সবচেয়ে বড় ব্লগিং সিস্টেম ওয়ার্ডপ্রেসেও কোর ভাষা হিসাবে ব্যবহৃত হয়েছে।
  • এটি ফেসবুকের মত বিশাল সোস্যাল নেটওয়ার্ক পরিচালনার জন্যও ব্যবহৃত হয়।
  • সহজ হওয়ার কারণে নতুনরা সার্ভার সাইড ল্যাংগুয়েজ হিসাবে এটিই প্রথম শিখে!

পিএইচপি ফাইল কি?

  • একটি পিএইচপি ফাইলে টেক্সট, এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্ট এবং পিএইচপি কোড থাকতে পারে।
  • পিএইচপি কোড সার্ভারে সম্পাদিত(execution) হয় এবং এর ফলাফল ব্রাউজারে এইচটিএমএল ফরম্যাটে প্রদর্শিত হয়।
  • পিএইচপি ফাইলকে ".php" এক্সটেনশন দিয়ে সংরক্ষণ(save) করতে হয়।

পিএইচপি কেন শিখবেন?

  • পিএইচপি ডায়নামিক পেজ কন্টেন্ট তৈরি করতে পারে।
  • পিএইচপি সার্ভারে ফাইল তৈরি করতে পারে, পড়তে পারে, লিখতে পারে, ডিলেট করতে পারে এবং ফাইল ওপেন ও ক্লোজ করতে পারে।
  • পিএইচপি ফর্ম ডেটা সংরক্ষন করতে পারে।
  • পিএইচপি কুকি(cookies) সংরক্ষন এবং পাঠাতে পারে।
  • পিএইচপি ডেটাবেজে ডেটা যোগ, বিয়োগ এবং পরিবর্তন করতে পারে।
  • পিএইচপি ইউজার এক্সেস কন্ট্রোল করতে পারে।
  • পিএইচপি ডেটা এনক্রিপ্ট করতে পারে।

পিএইচপির আউটপুট শুধুমাত্র এইচটিএমএলে সীমাবদ্ধ নাই। পিএইচপির মাধ্যমে আপনি ছবি, পিডিএফ ফাইল এবং এমনকি ফ্ল্যাশ মুভিও আউটপুট হিসাবে নিতে পারেন। এছাড়া আপনি যেকোনো ধরণের টেক্সটকেও আউটপুট হিসাবে নিতে পারেন। যেমন; HTML এবং XML।


পিএইচপি কেন ব্যবহার করবেন?

  • পিএইচপি বিভিন্ন প্লাটফর্মে সাপোর্ট করে। যেমন- Mac OS, Linux, Windows, Unix ইত্যাদি।
  • বর্তমানে ব্যবহৃত সকল সার্ভারে পিএইচপি সাপোর্ট করে। যেমন- Apache, Nginx, IIS ইত্যাদি।
  • পিএইচপিতে বিশাল আকারের ডেটাবেজ সাপোর্ট করে।
  • পিএইচপি সম্পূর্ন ফ্রি। অফিসিয়াল পিএইচপি রিসোর্স ডাউনলোডঃ www.php.net
  • পিএইচপি অনেক সহজে শেখা যায় এবং দক্ষতার সাথে সার্ভার সাইডে রান করানো যায়।


 

পিএইচপি টিউটোরিয়াল লিস্ট


পিএইচপি ব্যাসিক টিউটোরিয়াল

হোম-HOME ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

 

কন্ট্রোল স্টেটমেন্ট টিউটোরিয়াল

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

 

পিএইচপি এ্যারে এবং স্ট্রিং টিউটোরিয়াল

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

 

পিএইচপি এডভান্স টিউটোরিয়াল

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

 

পিএইচপি ফরম টিউটোরিয়াল

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

 

MySQL ডেটাবেজ টিউটোরিয়াল

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট


 

পিএইচপি- এক্সএমএল টিউটোরিয়াল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom


 

পিএইচপি - এজাক্স টিউটোরিয়াল

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

 

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP) টিউটোরিয়াল

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

Content added || updated By

ইনস্টলেশনের জন্য করনীয়ঃ

নিম্নোক্ত উপায়ে পিএইচপি ব্যবহার শুরু করতে পারেন।

  • পিএইচপি এবং মাইএস্কিউএল( PHP and MySQL) সমর্থিত ওয়েব হোস্ট খুজুন।
  • আপনার নিজের পিসিতে ওয়েব সার্ভার ইনস্টল করে পিএইচপি এবং মাইএস্কিউএল ইনস্টল করুন।

পিএইচপি সমর্থিত ওয়েব হোস্ট ব্যবহার করুন।

আপনার সার্ভারে যদি ইতিমধ্যেই পিএইচপি একটিভ করা থাকে তাহলে পিএইচপি সেটআপের জন্য আপনাকে আর কিছুই করতে হবে না।

শুধু .php এক্সটেনশন দিয়ে কিছু ফাইল তৈরি করে আপনার ওয়েব ডিরেক্টরিতে রাখুন এবং ব্রাউজার থেকে সেগুলো রান করান তাহলে সার্ভার অটোমেটিকালি সেগুলোকে আপনার জন্য পার্স(parse) করবে।

আপনাকে কষ্ট করে কোন কিছুই কম্পাইল করতে হবে না অথবা অতিরিক্ত টুলস ইনস্টল করতে হবে না।

পিএইচপি ফ্রি হওয়ায় অধিকাংশ ওয়েব হোস্টেই পিএইচপি সাপোর্ট করে।


আপনার নিজের পিসিতে পিএইচপি সেটআপ করুন

যাইহোক, আপনার সার্ভার যদি পিএইচপি সাপোর্ট না করে, তাহলে আপনাকে নিম্নোক্ত বিষয়গুলো করতে হবেঃ

  • ওয়েব সার্ভার ইনস্টল করুন
  • পিএইচপি ইনস্টল করুন
  • ডাটাবেজ ইনস্টল করুন। যেমন-MySQL

পিএইচপি ইনস্টল সম্মন্ধে আরও জানতে পিএইচপির অফিসিয়াল সাইট PHP.net ভিজিট করুনঃ
http://php.net/manual/en/install.php


আমাদের পরামর্শ

পিএইচপি ইনস্টল করার জন্য আমরা আপনাকে AMP (Apache, MySQL, PHP) সফটওয়্যার স্ট্যাক ইনস্টল করার পরামর্শ দিচ্ছি। কেননা, এটি সকল অপারেটিং সিস্টেমের জন্যই সচারচর পাওয়া যায়। আপনি বাজারে অনেক ধরণের AMP দেখতে পাবেন যেগুলো নিম্নে তুলে ধরা হলোঃ

  • WAMP - Windows এর জন্য
  • LAMP - Linux এর জন্য
  • MAMP - Mac এর জন্য
  • SAMP - Solaris এর জন্য
  • FAMP - FreeBSD এর জন্য
  • XAMPP (Cross, Apache, MySQL, PHP, Perl) - ক্রস প্লাটফর্ম এর জন্য। এটি অন্যান্য কিছু কম্পোনেন্টও যোগ করে। যেমন-FileZilla, OpenSSL, Webalizer, OpenSSL, Mercury Mail ইত্যাদি।

আপনি যদি Windows ব্যবহার করেন এবং XAMPP এর অন্যান্য বৈশিষ্ট্যসহ Perl ব্যবহার করতে না চান তাহলে আপনি WAMP ব্যবহার করতে পারেন। একইভাবে আপনি Linux এর জন্য LAMP এবং MacOS এর জন্য MAMP ব্যবহার করেতে পারেন।

বিভিন্ন প্লাটফর্মের জন্য সার্ভার ডাউনলোড এর লিংকসমূহ

Content added By

পিএইচপি স্ক্রিপ্ট বা কোড সার্ভারে এক্সিকিউট হয় এবং ব্রাউজারে সাধারণ এইচটিএমএল ফরম্যাট এ ফেরত পাঠায়।


পিএইচপির মৌলিক গঠন(Syntax)

পিএইচপি স্ক্রিপ্ট একটি ডকুমেন্টের যেকোনো জায়গায় রাখা যায়।

পিএইচপি স্ক্রিপ্ট দিয়ে শুরু হয় এবং ?> দিয়ে শেষ হয়ঃ

পিএইচপি এর ডিফল্ট ফাইল এক্সটেনশন হচ্ছে ".php"

kt_satt_skill_example_id=9

পিএইচপি ফাইলের মধ্যে সাধারণত এইচটিএমএল ট্যাগ এবং কিছু পিএইচপি স্ক্রিপ্টিং কোড ব্যবহার করা হয়।

নিচের উদাহরণে আমরা একটি সাধারণ পিএইচপি ফাইলের উদাহরণ দেখবো, যেখানে ওয়েব পেজের মধ্যে "হ্যালো স্যাট " আউটপুট নেওয়ার জন্য পিএইচপি এর একটি বিল্ট-ইন ফাংশন "echo" ব্যবহার করা হয়েছে।

kt_satt_skill_example_id=5

বিঃদ্রঃ পিএইচপি স্টেটমেন্ট সেমিকোলন (;) দিয়ে শেষ হয়।

পিএইচপি কেস-সেনসিটিভ

অর্থাৎ পিএইচপিতে ছোট হাতের বর্ণ এবং বড় হাতের বর্ণকে আলাদাভাবে বিবেচনা করা হয়।

পিএইচপি কেস-সেনসিটিভ হওয়া সত্ত্বেও সব ধরনের কিওয়ার্ড (যেমন- if, else, for, echo ইত্যাদি), ক্লাস, ফাংশন এবং ইউজার ডিফাইন্ড ফাংশন কেস-সেনসিটিভ নয়।

নিচের উদাহরণে তিনটি echo স্টেটমেন্টই বৈধ এবং সমানঃ

kt_satt_skill_example_id=6

যাইহোক, সবধরনের চলক(variable) কিন্তু কেস সেনসিটিভ।

নিচের উদাহরণে শুধুমাত্র $name ভ্যারিয়েবলের ভ্যালু প্রদর্শিত হবে। কারণ $name, $NAME এবং $Name তিনটি ভিন্ন ভিন্ন ভ্যারিয়েবল।

যেহেতু $NAME এবং $Name ভ্যারিয়েবল ডিফাইন করা হয়নি, তাই যখন আমরা এগুলোর আউটপুট নিতে চাইবো তখন error দেখাবে।

kt_satt_skill_example_id=7

পিএইচপিতে কমেন্ট এর ব্যবহার

পিএইচপি কোড ব্যাখ্যা করার জন্য এবং অধিক পাঠযোগ্য করে তোলার জন্য কমেন্ট(Comment) ব্যবহার করা হয়।
এক্সিকিউশন থেকে বিরত রাখার জন্যও পিএইচপি কোডে কমেন্ট ব্যবহার করা হয়। বিশেষ করে বিকল্প কোন কোড(code) টেস্ট করার সময় এর ব্যবহার বেশ লক্ষ্যনীয়।

কমেন্ট এর ব্যবহারঃ

  • আপনার কোড লেখার উদ্দেশ্য হলো খুব সহজেই অন্যকে বুঝানো।
  • কোড এর ডকুমেন্টেশন লেখার জন্য।
  • আপনি কোড এর মাধ্যমে কি করতে চেয়েছিলেন তা পুনরায় মনে করার জন্য। কেননা অধিকাংশ প্রোগ্রামাররাই দীর্ঘদিন পরে তাদের পূর্বের কিছু প্রজেক্টে ফিরে আসে। তখন কমেন্টের লেখাগুলোই তাকে স্মরণ করিয়ে দেয় যে, সে কি চিন্তা নিয়ে ঐ কোডগুলো লিখেছিল। 

পিএইচপি কয়েক ধরনের কমেন্ট সমর্থন করেঃ

kt_satt_skill_example_id=8

Content added || updated By

ভ্যারিয়েবল হলো তথ্য জমা রাখার পাত্র(container)।
আপনি যদি পিএইচপিতে তথ্য নিয়ে কাজ করতে চান তাহলে তথ্য/তথ্যসমূহকে অবশ্যই প্রথমে ভ্যারিয়েবলের মধ্যে জমা রাখতে হবে।


পিএইচপি ভ্যারিয়েবল ঘোষণা/তৈরি করা

পিএইচপিতে ভ্যারিয়েবল লেখার জন্য প্রথমে $ চিহ্ন এবং এর সাথেই ডান পাশে ভ্যারিয়েবল এর নাম লিখতে হয়।

kt_satt_skill_example_id=11

উপররের উদাহরণটি সম্পাদিত হওয়ার পরে $academyName এবং $postCode ভ্যারিয়েবল এর মধ্যে যথাক্রমে স্যাট একাডেমী এবং ৬২১১ জমা হয়।

  • পরামর্শঃ ভ্যারিয়েবল এর মধ্যে টেক্সট ভ্যালু জমা রাখার জন্য কোটেশন মার্ক(" ") ব্যবহার করুন।
  • বিঃদ্রঃ অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন- সি, সি++, জাভা ইত্যাদির ন্যায় পিএইচপিতে ভ্যারিয়েবল ঘোষণা করার জন্য অতিরিক্ত কোনো কমান্ড ব্যবহার করতে হয় না। পিএইচপি ভ্যারিয়েবলে যখনই কোনো ভ্যালু এসাইন করে দেন তখনি এটি তৈরি হয়ে যায়।

শুধুমাত্র এটুকু বুঝলেই হবে যে, ভ্যারিয়েবল হলো তথ্য জমা রাখার পাত্র।


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

ভ্যারিয়েবলের নাম সংক্ষিপ্ত(যেমন- x এবং y) অথবা বর্ননামূলক(যেমন- age, color, first_name ইত্যাদি) হতে পারে।

পিএইচপি ভ্যারিয়েবল ডিক্লেয়ারেশন এর নিয়মঃ

  • ভ্যারিয়েবল শুরু হয় $ চিহ্নের মাধ্যমে এবং ঠিক এর পরেই ভ্যারিয়েবলের নাম থাকে।
  • ভ্যারিয়েবলের নাম অবশ্যই বর্ণ অথবা আন্ডারস্কোর দিয়ে শুরু হতে হবে।
  • ভ্যারিয়েবল নাম কখনোই সংখ্যা দিয়ে শুরু হবে না।
  • ভ্যারিয়েবল নামে শুধুমাত্র বর্ণ, অংক এবং আন্ডারস্কোর থাকতে পারবে (যেমনঃ A-z, 0-9, এবং _ )
  • ভ্যারিয়েবল নাম হচ্ছে কেস সেনসিটিভ। যেমন- $satt এবং $SATT সম্পূর্ন ভিন্ন দুটি ভ্যারিয়েবল।

সবসময়ই মাথায় রাখবেন যে, পিএইচপি ভ্যারিয়েবল হচ্ছে কেস সেনসিটিভ!

ভ্যারিয়েবলের আউটপুট

ব্রাউজার/কনসোলে পিএইচপি ভ্যারিয়েবলের আউটপুট নেওয়ার জন্য প্রায়ই echo স্টেটমেন্ট ব্যবহার করা হয়।

ভ্যারিয়েবলের আউটপুট কিভাবে নিতে হয় নিচের উদাহরণে দেখানো হলোঃ

kt_satt_skill_example_id=13

নিচের উদাহরণের মাধ্যমে ২টি ভ্যারিয়েবলের যোগফল নির্ণয় করে দেখানো হলোঃ

kt_satt_skill_example_id=14

বিঃদ্রঃ echo স্টেটমেন্ট সম্মন্ধে পরবর্তী অধ্যায়ে আরও আলোচনা করা হয়েছে।


পিএইচপিতে ডেটা টাইপ অনেকটাই সিথিল(Loose)

উপরের উদাহরণ সমূহে লক্ষ্য করলে দেখবেন যে, সেখানে ভ্যারিয়েবলের কোনো ডেটা টাইপ নাই।

ভ্যালুর উপর ভিত্তিকরে পিএইচপি ভ্যারিয়েবল স্বয়ংক্রিয়ভাবেই সঠিক ডেটা টাইপে রূপান্তরিত(convert) হয়।

কিন্তু অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন- সি, সি++, জাভা ইত্যাদির ক্ষেত্রে ভ্যারিয়েবলের নামের পূর্বে অবশ্যই ডেটা টাইপ নির্ধারণ করে দিতে হয়।


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

পিএইচপিতে স্ক্রিপ্টের যেকোনো জায়গায় ভ্যারিয়েবল ঘোষণা(Declare) করা যায়।

ভ্যারিয়েবলের স্কোপ হলো স্ক্রিপ্টের অংশ, যেখানে ভ্যারিয়েবল কে রেফার করা হয়ঃ

  • local- ফাংশনের ভেতরের ভ্যারিয়েবল।
  • global- ফাংশনের বাহিরের ভ্যারিয়েবল।
  • static-ফাংশনের কাজ শেষেও ভ্যারিয়েবল মুছে যায় না।

Local এবং Global স্কোপ

ফাংশনের ভেতরে ভ্যারিয়েবল ঘোষণা করলে তাদের স্কোপ LOCAL থাকে এবং এটি শুধুমাত্র ফাংশনের ভেতর থেকেই এক্সেস এবং ব্যবহার করা যায়ঃ

kt_satt_skill_example_id=15

ফাংশনের বাহিরে ভ্যারিয়েবল ঘোষণা করলে তাদের স্কোপ GLOBAL থাকে এবং এটি শুধুমাত্র ফাংশনের বাহির থেকেই এক্সেস এবং ব্যবহার করা যায়ঃ

kt_satt_skill_example_id=16

আপনি ইচ্ছা করলে একই ভ্যারিয়েবলের নাম ভিন্ন ভিন্ন ফাংশনে ব্যবহার করতে পারবেন। কারণ, ফাংশনের মধ্যে ঘোষিত ভ্যারিয়েবলের স্কোপ লোকাল হওয়ায় শুধুমাত্র সংশ্লিষ্ট ফাংশনই ঐ ভ্যারিয়েবল কে মনে রাখে।
অর্থাৎ ফাংশন এক্সিকিউশন হলেই এদের লাইফ টাইম শেষ হয়ে যায়।


পিএইচপি global কিওয়ার্ড

গ্লোবাল ভ্যারিয়েবলকে ফাংশনের মধ্য থেকে এক্সেস করতে হলে global কিওয়ার্ড ব্যবহার করতে হয়।

এটি করার জন্য নিচের উদাহরণের মত ফাংশনের মধ্যে ভ্যারিয়েবলের নামের পূর্বে global কিওয়ার্ড ব্যবহার করুনঃ

kt_satt_skill_example_id=17

পিএইচপি সকল গ্লোবাল ভ্যারিয়েবলকে $GLOBALS[index] নামের একটি এসোসিয়েটিভ অ্যারে এর মধ্যে জমা রাখে। এখানে index হচ্ছে ভ্যারিয়েবলের নাম। এছাড়া এই অ্যারেকে ফাংশনের মধ্য থেকে এক্সেস করা যায় এবং এটি ব্যবহার করে গ্লোবাল ভ্যারিয়েবলকে সরাসরি আপডেটও করা যায়।

উপরের উদাহরণটি নিচের মত করেও লিখা যায়।

kt_satt_skill_example_id=18


পিএইচপি static কিওয়ার্ড

সাধারণত কোনো ফাংশন সম্পন্ন হওয়ার সাথে সাথেই ফাংশনের মধ্যে ব্যবহৃত সমস্ত ভ্যারিয়েবল মুছে যায়।

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

kt_satt_skill_example_id=19

এখন ফাংশনকে যতবার কল করবেন, ভ্যারিয়েবলের ভ্যালুও ততবার পরিবর্তন হবে এবং শেষ বার কল করলে যে ভ্যালু পাওয়া যাবে সেটাই হবে ভ্যারিয়েবলের ভ্যালু।

নোটঃ উপরের উদাহরণে ব্যবহৃত ভ্যারিয়েবল $number এর স্কোপ ফাংশনের মধ্যে এখনো লোকাল।

Content added || updated By

পিএইচপি echo এবং print স্টেটমেন্ট

আউটপুট নেওয়ার জন্য পিএইচপিতে দুটি মৌলিক পদ্ধতি রয়েছেঃ

  1. echo
  2. print

পিএইচপির এই টিউটোরিয়ালে আধিকাংশ উদাহরণেই আমরা echo(print) ব্যবহার করেছি। এই দুটি আউটপুট স্টেটমেন্ট সম্মন্ধে নিচে হালকা আলোচনা করা হলো।


পিএইচপি echo এবং print স্টেটমেন্ট

echo এবং print স্টেটমেন্ট প্রায় একই রকম। কারণ দুটোকেই ব্যবহার করা হয় ব্রাউজার/কনসোলে আউটপুট নেওয়ার জন্য।

স্টেটমেন্ট দুটির কাজ একই হওয়া সত্ত্বেও সামান্য কিছু পার্থক্য বিদ্যমানঃ echo এর কোনো রিটার্ন ভ্যালু নাই। কিন্তু print এর রিটার্ন ভ্যালু হলো 1। সুতরাং printকে এক্সপ্রেশনেও ব্যবহার করা যায়।

echo একের অধিক প্যারামিটার(parameter) গ্রহণ করতে পারে কিন্তু print একটি মাত্র আর্গুমেন্ট গ্রহণ করতে পারে।

echo তুলনামূলকভাবে print এর চেয়ে দ্রুত কাজ করে।


পিএইচপি echo স্টেটমেন্ট

echo স্টেটমেন্টকে বন্ধনীসহ অথবা বন্ধনী ছাড়াও ব্যবহার করা যায়। যেমন- echo অথবা echo()

আমরা নিচের উদাহরণের সাহায্যে দেখবো কিভাবে echo স্টেটমেন্ট এর মাধ্যমে টেক্সট(text) আউটপুট নেওয়া যায়। আপনি লক্ষ্য করলে দেখবেন যে, টেক্সট এর মধ্যে এইচটিএমএল মার্কআপও রয়েছেঃ

kt_satt_skill_example_id=22

নিচের উদাহরণের সাহায্যে দেখবো কিভাবে টেক্সট(text) এবং ভ্যারিয়েবল আউটপুট নেওয়া যায়ঃ

kt_satt_skill_example_id=23


পিএইচপি print স্টেটমেন্ট

print স্টেটমেন্টকে বন্ধনীসহ অথবা বন্ধনী ছাড়াও ব্যবহার করা যায়। যেমন- print অথবা print()

আমরা নিচের উদাহরণের সাহায্যে দেখবো কিভাবে print স্টেটমেন্ট এর মাধ্যমে টেক্সট(text) আউটপুট নেওয়া যায়। আপনি লক্ষ্য করলে দেখবেন টেক্সট এর মধ্যে এইচটিএমএল মার্কআপও রয়েছেঃ

kt_satt_skill_example_id=24

নিচের উদাহরণের সাহায্যে দেখবো কিভাবে print স্টেটমেন্ট এর মাধ্যমে টেক্সট(text) এবং ভ্যারিয়েবল আউটপুট নেওয়া যায়ঃ

kt_satt_skill_example_id=25

Content added || updated By

ডেটা টাইপ

ভ্যারিয়েবলের মধ্যে বিভিন্ন টাইপের ডেটা রাখা যায় এবং ভিন্ন ভিন্ন ডেটার মাধ্যমে ভিন্ন ভিন্ন কাজ করা যায়।

পিএইচপিতে নিম্নোক্ত ডেটা টাইপ সাপোর্ট করেঃ

  • Boolean - true অথবা false
  • Integer - পূর্ণসংখ্যা
  • String - অক্ষর সেট
  • Float - দশমিক সংখ্যা
  • Array - একাধিক ভ্যালু জমা রাখার জন্য ভ্যারিয়েবল
  • Object - ইউজার ডিফাইন্ড ডেটা টাইপ
  • NULL - ফাঁকা ভ্যারিয়েবল
  • Resource - বাহ্যিক ফাংশন বা রিসোর্সকে সনাক্ত বা রেফার করে

পিএইচপি Boolean

Boolean মাত্র দুইটা ভ্যালু সরবরাহ করে। যেমন- true অথবা false

শর্ত (condition) যাচাই করার জন্য প্রায়ই বুলিয়ান ডেটা ব্যবহার করা হয়। শর্ত যাচাই সম্বন্ধে পরবর্তী অধ্যায়ে আলোচনা করা হয়েছে।


পিএইচপি Integer

integer হচ্ছে -2,147,483,648 এবং 2,147,483,647 এর মধ্যে যেকোনো পূর্ণসংখ্যা।

integer এর নিয়মঃ

  • Integer-এ কমপক্ষে একটি ডিজিট থাকতে হবে।
  • Integer-এ দশমিক সংখ্যা থাকতে পারবে না।
  • Integer ধনাত্মক অথবা ঋণাত্মক হতে পারে।
  • Integer-কে তিনটি ফরম্যাট দ্বারা চেনা যায়ঃ
    • decimal ( ১০-ভিত্তিক )
    • hexadecimal (১৬ ভিত্তিক - 0x দিয়ে শুরু হয়)
    • octal (৮-ভিত্তিক - 0 দ্বারা শুরু হয়)

নিচের উদাহরণে $year হচ্ছে integer এবং এর ডেটা টাইপ ও ভ্যালু জানার জন্য পিএইচপি var_dump() ফাংশন ব্যবহার করা হয়েছেঃ

kt_satt_skill_example_id=26


পিএইচপি String

স্ট্রিং হলো অক্ষরের ক্রম। যেমন- "হ্যালো বাংলাদেশ!"।

কোটেশন মার্কের মধ্যে ব্যবহৃত যেকোনো টেক্সটই স্ট্রিং। স্ট্রিংকে সিঙ্গেল বা ডাবল কোটেশনের মধ্যে রাখা যায়ঃ

kt_satt_skill_example_id=27


পিএইচপি Float

Float হলো দশমিক সংখ্যা। একে দশমিক বা এক্সপনেনশিয়াল(ex) ফর্মে লেখা যায়।

নিচের উদাহরণে $number হলো float এবং এর ডেটা টাইপ ও ভ্যালু জানার জন্য পিএইচপি var_dump() ফাংশন ব্যবহার করা হয়েছেঃ

kt_satt_skill_example_id=28


পিএইচপি Array

Array এমন একটি ভ্যারিয়েবল যার মাধ্যমে একই সঙ্গে একের অধিক ভ্যালু জমা রাখা যায়।

নিচের উদাহরণে $satt হলো অ্যারে ভ্যারিয়েবল এবং এর ডেটা টাইপ ও ভ্যালু জানার জন্য পিএইচপি var_dump() ফাংশন ব্যবহার করা হয়েছেঃ

kt_satt_skill_example_id=29

পরবর্তী অধ্যায়ে Array সম্মন্ধে বিস্তারিত আলোচনা করা হয়েছে।


পিএইচপি Object

Object এমন এক ডেটা টাইপ যার মধ্যে শুধুমাত্র ডেটাই থাকে না, বরং ঐ ডেটাকে কিভাবে প্রসেস করতে হবে সে তথ্যও থাকে।

Object ডেটা টাইপ অন্য সব ডেটা টাইপ থেকে ভিন্ন। পিএইচপিতে Object ঘোষণা করতে অবশ্যই new কিওয়ার্ড ব্যবহার করতে হবে।

Object ডেটার জন্য প্রথমেই আমাদেরকে ক্লাস ঘোষণা করতে হবে। ক্লাস ঘোষণা করার জন্য class কি-ওয়ার্ড ব্যবহার করতে হয়। ক্লাস হচ্ছে এক ধরনের টেমপ্লেট বা গঠনপ্রণালী যার মধ্যে অবজেক্ট এর প্রোপার্টি এবং মেথড থাকতে পারেঃ

kt_satt_skill_example_id=31

পরবর্তী অধ্যায়ে Object সম্মন্ধে বিস্তারিত আলোচনা করা হয়েছে।


পিএইচপি NULL


Null হলো বিশেষ ধরনের ডেটা টাইপ, যার শুধুমাত্র একটি ভ্যালু থাকে। যেমন- NULL।

যে সকল ভ্যারিয়েবলে কোনো ভ্যালু এসাইন করা হয় না তাদের ডেটা টাইপ NULL।

বিঃদ্রঃ যদি কোনো ভ্যারিয়েবলকে ভ্যালু ছাড়াই ঘোষণা করা হয় তাহলে স্বয়ংক্রিয়ভাবে এর ভ্যালু NULL বা ফাঁকা হয়।

ভ্যারিয়েবলের ভ্যালু NULL এসাইন করে ফাঁকা রাখা যায়।

kt_satt_skill_example_id=32


পিএইচপি Resource

পিএইচপি বিশেষ ধরণের ডেটা টাইপ Resource প্রকৃত ডেটা টাইপ নয়। এটি প্রকৃতপক্ষে ফাংশন বা বাহ্যিক পিএইচপি রিসোর্স এর রেফারেন্স জমা রাখে।

রিসোর্স ডেটা টাইপ এর সাধারণ উদাহরণ হলো ডেটাবেজ কল করা।

Content added || updated By

পিএইচপি কনস্ট্যান্ট ভ্যারিয়েবলের মতই। শুধুমাত্র পার্থক্য এই যে, কনস্ট্যান্টকে একবার ডিফাইন্ড(defined) করলে আর পরিবর্তন বা আনডিফাইন্ড করা যায় না।


পিএইচপি কনস্ট্যান্ট

কনস্ট্যান্ট হলো সাধারণ ভ্যালুর জন্য আইডেন্টিফায়ার বা নাম। স্ক্রিপ্ট এক্সিকিউশন এর সময় কনস্ট্যান্ট ভ্যালু পরিবর্তিন করা যায় না।

একটি বৈধ কনস্ট্যান্ট এর নাম বর্ণ(letter) বা আন্ডারস্কোর দ্বারা শুরু হয়। কনস্ট্যান্ট এর নামের পূর্বে ডলার($) সাইন ব্যবহৃত হয় না।

বিঃদ্রঃ সমগ্র স্ক্রিপ্ট জুড়েই কনস্ট্যান্ট এর স্কোপ স্বয়ংক্রিয়ভাবে গ্লোবাল হয়।


পিএইচপি কনস্ট্যান্ট তৈরি

পিএইচপি কনস্ট্যান্ট দুইভাবে ডিফাইন করা যায়। যেমন-

  • define() ফাংশন ব্যবহার করে।
  • const কীওয়ার্ড ব্যবহার করে।

define() ফাংশন ব্যবহার করে কনস্ট্যান্ট তৈরি

সিনট্যাক্স

kt_satt_skill_example_id=36

প্যারামিটার এর ব্যাখ্যাঃ

  • name: কনস্ট্যান্ট এর নামকে নির্দেশ করে।
  • value : কনস্ট্যান্ট এর ভ্যালুকে নির্দেশ করে।
  • case-insensitive : কনস্ট্যান্ট এর নাম case-insensitive কি না নির্দেশ করে। ডিফল্ট হলো false।

নিচের উদাহরণে একটি case-sensitive কনস্ট্যান্ট এর নাম তৈরি করে দেখানো হলোঃ

kt_satt_skill_example_id=37

নিচের উদাহরণে একটি case-insensitive কনস্ট্যান্ট এর নাম তৈরি করে দেখানো হলোঃ

kt_satt_skill_example_id=39


const কীওয়ার্ড ব্যবহার করে কনস্ট্যান্ট তৈরি

const কীওয়ার্ড কম্পাইল এর সময় কনস্ট্যান্ট তৈরি করে। এটি ফাংশন নয়, বরং এটি language construct।

এটি define() এর তুলনায় দ্রুত কাজ করে।

এটি সব সময় কেস-সেনসিটিভ

নিচের উদাহরণে const কীওয়ার্ড ব্যবহার করে কনস্ট্যান্ট তৈরি করে দেখানো হলোঃ

kt_satt_skill_example_id=40


কনস্ট্যান্ট সর্বদাই গ্লোবাল

কনস্ট্যান্ট এর স্কোপ স্বয়ংক্রিয়ভাবেই গ্লোবাল এবং সমগ্র স্ক্রিপ্ট জুড়েই এটিকে ব্যবহার করা যায়।

নিচের উদাহরণে কনস্ট্যান্টকে ফাংশনের বাহিরে ডিফাইন করা সত্ত্বেও ফাংশনের মধ্য থেকে ব্যবহার করা হয়েছেঃ

kt_satt_skill_example_id=42

 

Content added || updated By

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

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

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

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


পিএইচপি 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 সূচক হিসাবে ফলাফল রিটার্ন করা।


kt_satt_skill_example_id=46


পিএইচপি 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


kt_satt_skill_example_id=48


পিএইচপি 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 রিটার্ন করবে।


kt_satt_skill_example_id=50

পিএইচপি 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 এর ভ্যালু এক হ্রাস পায়।


kt_satt_skill_example_id=51

পিএইচপি 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 রিটার্ন করে।


kt_satt_skill_example_id=52


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

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

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


kt_satt_skill_example_id=53

পিএইচপি 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 রিটার্ন করে।


kt_satt_skill_example_id=54

Content added || updated By

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


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

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

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

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

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


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

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

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

kt_satt_skill_example_id=56

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

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

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

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

kt_satt_skill_example_id=57


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

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

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

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

kt_satt_skill_example_id=58

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

kt_satt_skill_example_id=59


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

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

kt_satt_skill_example_id=60

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

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

kt_satt_skill_example_id=61

 

Content added By

পিএইচপির ভার্সন 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 কে ব্যবহার করা যায়ঃ

kt_satt_skill_example_id=62

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


পিএইচপি $_SERVER

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

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

kt_satt_skill_example_id=63

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

 

$_SERVER['PHP_SELF']

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

$_SERVER['GATEWAY_INTERFACE']

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

$_SERVER['SERVER_ADDR']

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

$_SERVER['SERVER_NAME']

হোস্ট সার্ভারের নাম রিটার্ন করে। যেমন- www.sattacademy.com

$_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" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য

ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

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

kt_satt_skill_example_id=64


পিএইচপি $_GET

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

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

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

kt_satt_skill_example_id=65

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

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

kt_satt_skill_example_id=66


পিএইচপি $_POST

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

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

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

kt_satt_skill_example_id=68

টিপসঃ পিএইচপি Form অধ্যায়ে $_POST and $_GET সম্মন্ধে আরো অধিক আলোচনা করা হয়েছে।

Content added || updated By