পিএইচপি-২ [পিএইচপি ইনস্টলেশন, গঠন প্রনালী ও ভ্যারিয়েবল] - SMH Amiri

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

পিএইচপি-২ [পিএইচপি ইনস্টলেশন, গঠন প্রনালী ও ভ্যারিয়েবল]

 



পিএইচপি ইনস্টলেশন


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

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

  •  পিএইচপি এবং মাইএস্কিউএল( 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 ব্যবহার করেতে পারেন।

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


পিএইচপি গঠন প্রনালী

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


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

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

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

<?php
    // পিএইচপি কোড গুলো এখানে লিখবেন।
?>

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

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

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

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

<?php
//আমার প্রথম পিএইচপি কোড
echo "হ্যালো স্যাট!";
?>
</body>
</html>


ফলাফল
 হ্যালো স্যাট!

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


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

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

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

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

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

  <?php
    echo "হ্যালো পিএইচপি!<br>";
	ECHO "হ্যালো পিএইচপি!<br>";
	EcHo "হ্যালো পিএইচপি!<br>";
  ?>

  </body>
  </html>
  
  


ফলাফল
হ্যালো পিএইচপি!
হ্যালো পিএইচপি!
হ্যালো পিএইচপি!

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

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

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

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

<?php
$name = "পিএইচপি";

echo "আমার নাম ". $name ."।";
echo "আমার নাম ". $NAME ."।";
echo "আমার নাম ". $Name ."।";
?>

</body>
</html>


ফলাফল
আমার নাম পিএইচপি। 
( ! ) Notice: Undefined variable: NAME
আমার নাম।
( ! ) Notice: Undefined variable: Name
আমার নাম।

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

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

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

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

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

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
// একটি সিঙ্গেল লাইন কমেন্ট।
# এটিও একটি সিঙ্গেল লাইন কমেন্ট। ডকুমেন্টেশন লেখার জন্য এই কমেন্ট পদ্ধতি ব্যবহার  করা হয়।

/*
এটি একাধিক
লাইনের কমেন্ট।
*/

// আমরা কোডের মধ্যে কমেন্ট করে নির্দিষ্ট অংশকে এক্সিকিউশন করা থেকে বিরত রাখাতে পারি।
$name = "তামজীদ"/* হাসান */;
echo $name;
?>
</body>
</html>


ফলাফল
তামজীদ




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


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


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

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

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

<?php
// পিএইচপি ভ্যারিয়েবল ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন
$academyName = "স্যাট একাডেমী";
$postCode = ৬২১১;
// echo ফাংশন এর মাধ্যমে ব্রাউজারে আউটপুট নেওয়া হয়।
echo $academyName."<br>";
echo $postCode;
?>

</body>
</html>


ফলাফল
স্যাট একাডেমী
৬২১১

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

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

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


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

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

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

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

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


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

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

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

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

<?php
$academyName = "স্যাট একাডেমী";
echo $academyName . " বাংলাদেশের মধ্যে অন্যতম আইটি প্রতিষ্ঠান।";
?>

</body>
</html>


ফলাফল
 স্যাট একাডেমী বাংলাদেশের মধ্যে অন্যতম আইটি প্রতিষ্ঠান।


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

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

<?php
$nine = 9;
$five = 5;
echo $nine + $five;
?>

</body>
</html>


ফলাফল
14

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


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

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

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

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


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

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

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

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

Local এবং Global স্কোপ

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

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

<?php

function localScope() {
	 $name = "আজিজুর রহমান"; // local স্কোপ
	 echo "<p>ফাংশনের মধ্যে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ  $name</p>";
}
localScope();
// ফাংশনের বাহির থেকে  ভ্যারিয়েবল  name এক্সেস  করলে একটি error পাওয়া যাবে।
echo "<p>ফাংশনের বাহিরে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ $name</p>";

?>

</body>
</html>


ফলাফল
ফাংশনের মধ্যে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ আজিজুর রহমান

( ! ) Notice: Undefined variable: name

ফাংশনের বাহির থেকে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ


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

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

	<?php
	$name = "আজিজুর রহমান"; // global স্কোপ
	function localScope() {
		 // এই ফাংশনের মধ্যে ভ্যারিয়েবল  name ব্যবহার করলে একটি error পাওয়া যাবে
		 echo "<p>ফাংশনের মধ্য থেকে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ  $name</p>";
	}
	localScope();

	echo "<p>ফাংশনের বাহিরে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ $name</p>";

	?>

	</body>
	</html>
	


ফলাফল
( ! ) Notice: Undefined variable: name

ফাংশনের মধ্য থেকে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ

ফাংশনের বাহিরে ভ্যারিয়েবল  name এর ভ্যালু অ্যাক্সেসঃ আজিজুর রহমান
	

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


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

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

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

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

<?php
$firstPart = "আজিজুর ";
$total = "রহমান";
function globalScope() {
	 global $firstPart, $total;
	 $total = $firstPart . $total;
}
globalScope();

echo $total; // ভ্যারিয়েবল  $total এর নতুন ভ্যালু আউটপুট দিবে

?>

</body>
</html>


ফলাফল
আজিজুর রহমান


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

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


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

<?php
$firstPart = "আজিজুর ";
$total = "রহমান";
function globalScope() {
	 $GLOBALS['total'] = $GLOBALS['firstPart'] . $GLOBALS['total'];
}
globalScope();

echo $total; // ভ্যারিয়েবল  $total এর নতুন ভ্যালু আউটপুট দিবে

?>

</body>
</html>


ফলাফল
আজিজুর রহমান

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

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

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

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

<?php

function useStatic() {
	 static $number = 9;
	 echo $number;
	 $number--;
}
useStatic();
echo "<br>";
useStatic();
echo "<br>";
useStatic();

?>

</body>
</html>


ফলাফল
9
8
7

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

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