freelancerstutorial

This WordPress.com site is the cat’s pajamas

সহজে শিখুন পিএইচপি বেসিক

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

পিএইচপি এর আগে সার্ভার সাইড স্ক্রিপ্টিং সম্পর্কে একটু জানুন:

আসলে স্ক্রিপ্টিং হচ্ছে প্রোগ্রামের আরেকটা সমার্থক শব্দ।এটা হচ্ছে কিছু instruction এর সেট যেটা run করলে স্বয়ংক্রিয় ভাবে কিছু কাজ হয়।“সার্ভার সাইড” বলতে বুঝানো হচ্ছে এই স্ক্রিপ্ট গুলোকে ইউজারের কম্পিউটার থেকে নিয়ন্ত্রনের বদলে সার্ভার থেকে handle করা।যখন কেউ পিএইচপি ওয়েব পেজ ভিজিট করবে তখন ওয়েব সার্ভার পিএইচপি কোডগুলিকে কিছু Process করবে যেমন:যেটা দেখানো দরকার (Picture,Content etc) সেটা দেখাবে আর যেটাকে লুকানো দরকার (math calculation,file operation etc) তা লুকাবে এবং শেষে HTML এ রুপান্তর করে ইউজারের ওয়েব ব্রাউজারে পাঠাবে।

পিএইচপি  কি?:

পিএইচপি (PHP:Hypertext Preprocessor ) একটা সার্ভার সাইড,ক্রস প্লাটফর্ম,HTML-embedded স্ক্রিপ্টিং ল্যাংগুয়েজ।পিএইচপি এর বেশিরভাগ syntax গুলো C,Perl,Java থেকে ধার করা।এই ল্যাংগুয়েজটির উদ্দেশ্য হল ওয়েব পেজ দ্রুত তৈরী করা ডাইনামিকালি।

পিএইচপি শেখার আগে কি জানা থাকা দরকার:

১. এইচটিএমএল.বিশেষ করে এইচটিএমএল ফম্

২. C জানা থাকে তাহলে সুবিধা আছে।

কি কি সফটওয়ার প্রয়োজন ?:

যেসব ওয়েব সার্ভার পিএইচপি সাপোর্ট করে সেখানে hosting(জায়গা) নিতে হবে।এ জন্য টাকা গুনতে হবে।এ বিষয়টি নিয়ে হোস্টিং টিউটোরিয়াল বিস্তারিত আলোচনা করা আছে।

আপাতত শেখার জন্য আমরা নিজের কম্পিউটারেই ওয়েব সার্ভার ইনস্টল করে নেব।এ জন্য নিম্নোক্ত সফটওয়ারগুলি ইনস্টল থাকতে হবে আপনার কম্পিউটারে-

সার্ভার সফটওয়ার

১.একটা পিএইচপি-compitable ওয়েব সার্ভার যেমন: এপাচি

২.পিএইচপি

ক্লাইন্ট সফটওয়ার

১.ওয়েব ব্রাউজার যেমন মজিলা ফায়ারফক্স (এটাতো সবার ইনস্টল দেয়াই আছে)

২.একটা টেক্সট এডিটর যেমন:নোটপ্যাড।আপনি পিএইচপি এর জন্য Specialized এডিটরও ব্যাবহার করতে পারেন।পরে বিস্তারিত আসছি।

পিএইচপি ইনস্টলেশন (PHP Installation Tutorial in Bangla)

প্রথম টিউটোরিয়ালটি তো পড়েছেন তাহলে এটা বুঝতে আর সমস্যা হবেনা।ক্লাইন্ট সফটওয়ারগুলিতো সবার আছেই এখন শুধু ইনস্টল দিতে হবে ওয়েব সার্ভার যেমন apache এবং অবশ্যই পিএইচপি আর একটা ডেটাবেস সফটওয়ারও ইনস্টল দিয়ে নিন যেমন:MySQL,কি কাজে লাগবে তা পরে বলছি।এ সফটওয়ারগুলি সব ফ্রি পাওয়া যায়।নিশ্চয় এতক্ষনে গুগলে সার্চ দিয়ে সফটওয়ারগুলি খোজা শুরু করেছেন।একটা সহজ ঠিকানা দিচ্ছি এখানে এমন একটা সফটওয়ার পাবেন যেটা ইনস্টল দিলে সবগুলি একবারেই ইনস্টল হয়ে যাবে।আর আলাদা আলাদা ভাবে ইনস্টল দিতে হবেনা।সফটওয়ারটি হচ্ছে XAMPP.XAMPP এখান থেকে ডাউনলোড করে ইনস্টল করুন http://www.apachefriends.org/download.php?xampp-win32-1.7.3.exe  অন্যান্য সফটওয়ার এর মত ইনস্টল দিন।

ইন্সটল শেষে ডেস্কটপে XAMPP এর একটি আইকন দেখাবে সেখানে ডাবল ক্লিক করে ওপেন করুন অথবা অন্যভাবে করতে পারেন-যে ড্রাইভে ইনস্টল দিয়েছেন সেখানে গেলেই একটা XAMPP Control Panel নামে আইকন দেখতে পাবেন অর্থ্যাৎ আপনি যদি C ড্রাইভে ইনস্টল দেন তাহলে C:\Program Files\xampp বা C:\xampp এই লোকেশনে পাবেন। ব্যাস এখন শুধু start বাটনে click করুন(Apache এবং MySql)।

xampp control panel|webcoachbd

Apache ও MySql চালুর পর ব্রাউজারের এড্রসবারে লিখুন http://localhost ফলে নিচের মত একটা পেজ খুলবে। না আসলে English বাটনে ক্লিক করুন।

xampp installation|webcoachbd

এই পেজটি আসলে বুঝবেন আপনার পিসিতে সার্ভার ইনস্টল সম্পন্ন হয়েছে অর্থ্যাৎ আপনার কম্পিউটারটি এখন সার্ভার হিসেবে কাজ করছে(লোকাল সার্ভার)।

পিএইচপি কোড কোথায় লিখবেন (PHP Code Writting)

যদি C drive এ XAMPP ইনস্টল দিয়ে থাকেন তাহলে এই ফোল্ডারে htdocs নামে আরেকটা ফোল্ডার আছে সেখানে আপনার web content গুলো রাখবেন।

সকল www ডকুমেন্টের মুল ডাইরেক্টরি হচ্ছে “C:\xampp\htdocs”(তবে যদি অন্য ড্রাইভে ইনস্টল দিয়ে থাকেন যেমন:D drive তখন এটা হবে “D:\xampp\htdocs”). এখন যদি এই ডাইরেক্টরিতে “mytest.php” নামে কোন ফাইল রাখেন তাহলে আপনি এটাতে অ্যাকসেস পেতে পারেন এভাবে-ব্রাউজারের এড্রেসবারে লিখুন http://localhost/mytest.php

আচ্ছা এবার কোড লেখা শুরু করি চলুন,তার আগে একটা কথা কোড কোথায় লিখবেন?নোটপ্যাডে?লিখতে পারেন তবে পিএইচপি কোডলেখার জন্য কিছু স্পেশালাইজড সফটওয়ার আছে যেমন: Net Beans, Dreamweaver ইত্যাদি এগুলোতে কোড লিখলে অনেক সুবিধা পাবেন।এগুলো আর বললাম না লিখতে ধরলেই টের পাবেন,যে সুবিধাগুলো নোটপ্যাডে পাবেন না।এগুলোকে বলে IDE (Integrated Development  Environment).আপনি যেটাতে সাচ্ছ্যন্দবোধ করেন সেটা ব্যাবহার করুন।

পিএইচপি বেসিক সংকেত টিউটোরিয়াল (PHP Syntax)

পিএইচপি কোড কে কাজ করাতে অবশ্যই ফাইলটি সেভ করার সময় .php এক্সটেনশন দিয়ে সেভ করতে হবে।যদি .html থাকে তাহলে পিএইচপি কোড execute হবেনা।

* পিএইচপি কোড এর প্রতিটি অংশ <?php চিহ্ন দিয়ে শুরু এবং ?> চিহ্ন দিয়ে শেষ হবে।

*প্রতিটি আলাদা instruction(code line) সেমিক্লোন দ্বারা শেষ হবে।

ওকে এবার আপনার কোড এডিটর (নোটপ্যাড/ড্রিময়েভার বা আপনি যা ব্যাবহার করেন) খুলুন এবং নিচের মত লিখুন

1.<?php
2.echo"This is my first php page";
3.?>

এবার পেজটি mypage.php নামে সেভ করুন,সেভ করার সময় htdocs browse করে দেখিয়ে দিন save in এর জায়গায়।এবার ব্রাউজারের এড্রেসবারে লিখুন http://localhost/mypage.php এবং এন্টার দিন ফলে নিচের মত আউটপুট দেখতে পাবেন।

পিএইচপি বেসিক উদাহরন

শর্ট ট্যাগ:

<?php ?> এর ভিতরে কোড না লিখে এর কিছু সংক্ষিপ্ত রুপ আছে যেগুলি ব্যবহার করতে পারেন।যেমন উপরের কোড এইভাবে লিখলেও কাজ হবে

1.<?= "This is my first web page";?>

অর্থ্যাৎ <?php ?> এর বদলে <? ?> এভাবে লিখলেও কাজ হবে আর echo এর বদলে উপরে = বসেছে।আরও কয়েকভাবে লেখা যায় যেমন

1.<script language="php">
2.
3.echo "This is my first web page";
4.
5.</script>

এছাড়া ASP স্টাইলে লেখা যায় তবে এই পদ্ধতিটি এখন বাতিল।

*উপরের সব পদ্ধতির মধ্যে প্রথমটি সবসময় ব্যবহার করা উচিৎ।

*সব ধরনের শর্টট্যাগ কাজ করার জন্য php.ini ফাইলে short_open_tag এনাবল থাকতে হবে

পিএইচপি তে আউটপুটের জন্য ব্যবহৃত স্টেটমেন্ট সমূহ:

echo() স্টেটমেন্ট

প্রথম পেজে echo দিয়ে একটা স্ট্রিং কে ব্রাউজারে আউটপুট দেখানো হয়েছে।

print() স্টেটমেন্ট

print() দিয়েও এখানে দেয়া ডেটার আউটপুট ব্রাউজারে দেখা যায়।যেমন

1.<?php
2.
3.print "This is my first web page";
4.
5.?>

** বেশিরভাগ ক্ষেত্রে echo() স্টেটমেন্ট ব্যবহার করা হয় কারন এটা বেশি fast.তবে কোড ডিবাগিং এর সময় বিভিন্ন জায়গায় print() খুব কাজে লাগে,বিশেষ করে কোন অ্যারে echo() দিয়ে দেখা যায়না কিন্তু print() দিয়ে দেখা যায়।

printf() স্টেটমেন্ট

এই স্টেটমেন্ট দিয়ে আপনি একটা টেক্সটের মধ্যে ডাইনামিক ডেটা আউটপুট করতে পারেন।যেমন

1.<?php
2.
3.printf("There are %d article in webcoachbd",250);
4.
5.?>

আউটপুট

There are 250 article in webcoachbd

এখানে %d হচ্ছে type specifier, যখন printf() স্টেটমেন্ট এক্সিকিউট হবে তখন এই type specifier %d এর জায়গায় 250 এসে ঢুকে যাবে।এধরনের আরও অনেক type specifier আছে যেমন %s, %f, %o ইত্যাদি এগুলি পিএইচপি ম্যানুয়ালে আরও জানার জন্য দেখতে পারেন।

আপনি ইচ্ছে করলে একসাথে একাধিক type specifier ব্যবহার করতে পারেন।যেমন

01.<?php
02.
03.$myXam = 2;
04.
05.$myNum = 83.85484513;
06.
07.printf("In %d nd exam i have got %.3f percent marks",$myXam,$myNum);
08.
09.?>

আউটপুট:

In 2 nd exam i have got 83.855 percent marks

*এখানে type specifier %f এর পরিবর্তে %.3f দিয়েছি কারন দশমিকের পর আমি ৩ ঘর পর্যন্ত চেয়েছি।

sprintf() স্টেটমেন্ট

sprintf() স্টেটমেন্ট printf() এর মতই এবং কাজও একই শুধু পার্থক্য হল printf ব্রাউজারে আউটপুট আনার জন্য ব্যবহৃত হয় আর sprintf একটা ভেরিয়েবলে assign করার জন্য ব্যবহৃত হয়।ইচ্ছে করলে এই ভেরিয়েবল echo করে ব্রাউজারে আউটপুট আনতে পারেন।যেমন

1.<?php
2.
3.$how = sprintf("Here is output: %08.2f", 150.42 / 20);
4.echo $how;
5.?>

প্রথমে $how ভেরিয়েবলে sprintf স্টেটমেন্ট দিয়ে একটা মান assign করেছি এরপর ভেরিয়েবল টি echo করেছি।কিন্তু printf দিয়ে সরাসরি echo ‘র কাজ হয়ে যায়।এটা কাজে লাগে যখন আপনি ব্রাউজারে আউটপুট চাচ্ছেন না তবে এর মান কোডে কোথাও ব্যবহার করতে চাচ্ছেন।

** ১৫০.৪২ কে ২০ দ্বারা ভাগ করলে আসবে ৭.৫২১। এখানে সব মিলিয়ে কয়টি ঘর আছে? ৫টি (দশমিক সহ) আর type specifier আছে %08.2f এর অর্থ হচ্ছে ব্রাউজারে আউটপুট আমি ৮ ঘর পর্যন্ত চাই এবং দশমিকের পর ২ ঘর থাকবে।এখন আমাদের ভাগফল টিতে (৭.৫২১) আছে মাত্র ৫টি ঘর বাকি ৩ টি ঘরে তাহলে কি হবে? বাকি ঘরে হবে ০।এজন্য ৮ এর আগে শুন্য (০) দিয়েছি।

আউটপুট

Here is output: 00007.52

পিএইচপি কমেন্ট:

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

পরামর্শ: অনেক প্রাকটিস করুন,যেটুকু শিখেছেন সেটুকুই।যেমন <?php এবং ?> কোডের ভিতর

echo “Hello World! “;

echo “Hello World! “;

echo “Hello World! “;

echo “Hello World! “;

echo “Hello World! “;

এসব লিখতে থাকুন।

01.<?php
02.echo "Hello World!";
03.//ekhane line break diyesi but output ek line hobe
04.echo "Hello World!";
05.
06./*In above there are two line.but output will.
07.
08.will be one line.here multiple line
09.
10.
11.*/
12.?>

উপরের কোডে দেখুন একটি লাইন কমেন্ট করেছি // এই চিহ্ন দিয়ে আর একাধিক লাইন কমেন্ট করেছি /**/ এই চিহ্নের ভিতরে রেখে।

আর রান করান দেখুন পিএইচপি কোডের ভিতর স্পেস কাজ করেনা,এভাবে প্রাকটিস করলে নতুন নতুন জিনিস দেখতে পাবেন।

পিএইচপি ভেরিয়েবল টিউটোরিয়াল

ভেরিয়েবল হচ্ছে একটা পাত্রের মত(Container)যেখানে আমরা অনেক তথ্য রাখতে পারি।যেমন একটা টেক্সক্ট String “Hello Bangladesh” অথবা একটা integer value 100. কোন একটা ভেরিয়েবল এ একবার তথ্য রেখে সেটা পুরো কোডজুরে বারবার ব্যাবহার করতে পারেন,মুল তথ্য(value)টি বারবার রাখার পরিবর্তে।পিএইচপি তে ভেরিয়েবল “$” এই চিহ্নটি দিয়ে অবশ্যই শুরু করতে হবে নাহলে কাজ করবেনা।একটা ভেরিয়েবলের মান স্ক্রিপ্টে যেকোন সময় পরিবর্তন হতে পারে।

*ভেরিয়েবল নাম case sensitive.যেমন $a_number and $A_number দুটি আলাদা ভেরিয়েবল, পিএইচপি এর দৃষ্টিতে।

*নিম্নোক্ত ভাবে পিএইচপি তে ভেরিয়েবল লেখা হয়

$variable_name = Value;

উদাহরন

1.<?php
2.$hello = "This is a string";
3.$a_number = 4;
4.$anotherNumber = 8;
5.echo $hello ."<br/>";
6.$total = $a_number+$anotherNumber;
7.echo $total;
8.?>

আউটপুট:

variable_php

ব্যাখ্যা: উপরের কোডে দেখুন স্ট্রিং কে কোটেশন এর ভিতর রেখেছি এবং $hello ভেরিয়েবলে তা রেখেছি,পরে echo দিয়ে তা ব্রাউজারে আউটপুট এনেছি।আবার $a_number এবং $anotherNumber ভেরিয়েবলে সংখ্যা রেখেছি এবং পরে তা দিয়ে একটা অংক করেছি।

*পিএইচপি একটা “Loosely Typed” ল্যাংগুয়েজ তাই ভেরিয়েবল declare করার সময় ভেরিয়েবল এর টাইপ(ধরন) উল্লেখ না করলেও পিএইচপি নিজে থেকে ভেরিয়েবল কে সঠিক ডেটা টাইপে রুপান্তর করে নেবে।

ভেরিয়েবল নামকরন পদ্ধতি:

১.অবশ্যই কোন letter or “_”(under score) দিয়ে শুরু করতে হবে।

২. নামের মধ্যে alpha-numeric characters ও underscores. a-z, A-Z, 0-9, or _ . থাকতে পারে।

৩. ভেরিয়েবল নামে স্পেস থাকা যাবেনা।যদি নাম একের অধিক হয় তাহলে “___”underscore ($my_string) অথবা বড় হাতের অক্ষরে($myString)লিখতে হবে।

দুটি জিনিস সবসময় লাগে

01.<?php
02.
03.$feedback = "refatju";
04.
05.$domain = "@yahoo.com";
06.
07.$feedback = $feedback.$domain;
08.
09.echo $feedback;
10.
11.?>

একটা ডট (.) দুটি স্ট্রিংকে একসাথে করল,এটা সাধারন নিয়ম।একে বলে concatenate (কনক্যাটেনেট).একই কাজ নিচের মত করে করা যায়।বিভিন্ন সময় কোডে এমন দেখতে পাবেন।

1.<?php
2.$feedback = "refatju";
3.$domain = "yahoo.com";
4.$feedback .= $domain;
5.echo $feedback;
6.?>

এটার আউটপুট উপরের টির মতই আসবে।

নিচের কোডব্লক দুটির আউটপুট একই হবে

1.<?php
2.$test++;
3.echo $test;
4.?>

আউটপুট ১ আসবে,উল্লেখ্য যে $test ভেরিয়েবলের মান যদি ঠিক করে না দেন তাহলে পিএইচপি এটার মান বাই ডিফল্ট ০ ধরে নেবে।

1.<?php
2.$test = $test+1;
3.echo $test;
4.?>

এখানেও আউটপুট ১ আসবে।

ভেরিয়েবল স্কোপ

একটা ফাংশনে একটা ভেরিয়েবল থাকতে পারে,নিচের উদাহরনটি দেখুন

01.<?php
02.$number = 8;
03.
04.function calculation(){
05.$number  = 10;
06.
07.$anothernumber = 20;
08.
09.$addnumber  = $number+$anothernumber;
10.
11.echo $addnumber;
12.}
13.
14.echo "This \$number variable from outside of calculation() function and its value is $number";
15.
16.echo "</br>";
17.
18.calculation();
19.
20.?>

আউটপুট

This $number variable from outside of calculation() function and its value is 8
18

[*দেখুন ভেরিয়েবল চিহ্ন $ এর আগে \ (ব্যাকস্লাশ) চিহ্ন দেয়াতে সেটা ভেরিয়েবল হিসেবে গন্য হয়নি বরং স্ট্রিং এর মত আউটপুট হয়েছে।এটাকে বলে এসকেপ ক্যারেক্টার (escape character)]

এখানে ফাংশনের ভিতর $number নামে একটা ভেরিয়েবল আছে এবং ফাংশনের বাইরেও এই একই নামে আরেকটা ভেরিয়েবল আছে ($number = 8;)।ভেরিয়েবল দুটির নাম একই কিন্তু সম্পূর্ন আলাদা ভেরিয়েবল।কারন একটা ফাংশনের ভিতর আর একটা বাইরে।ভিতরের এই ভেরিয়েবলটিকে বলে লোকাল ভেরিয়েবল।আর বাইরের ভেরিয়েবলটির নাম গ্লোবাল ভেরিয়েবল

লোকাল ভেরিয়েবলটি শুধু এই ফাংশনের ভিতরেই ব্যবহার করা যাবে,ফাংশনের বাইরে থেকে একসেস পাওয়া যাবেনা।এই যে একটা ভেরিয়েবল শুধু একটা নির্দিষ্ট জায়গায় ব্যবহার করা যাচ্ছে,এটাই হল এই ভেরিয়েবলটির স্কোপ।

গ্লোবাল ভেরিয়েবল

গ্লোবাল ভেরিয়েবল একটা প্রোগ্রামের ভিতর যেকোন জায়গায় ব্যবহার করা যায়।একটা ফাংশনে গ্লোবাল ভেরিয়েবল ব্যবহার করার জন্য দুটি পদ্ধতি আছে-

পদ্ধতি ১ ($GLOBALS[‘number’])

ধরুন উপরের প্রোগ্রামে ব্যবহৃত গ্লোবাল ভেরিয়েবলটি যদি ফাংশনে ব্যবহার করতে চান তাহলে নিচের মত কোড লিখতে হবে

01.<?php
02.$number = 8;
03.
04.function calculation(){
05.$GLOBALS["number"];
06.$number  = 10;
07.
08.$anothernumber = 20;
09.
10.$addnumber  = $number+$GLOBALS["number"];
11.
12.echo $addnumber;
13.
14.}
15.
16.calculation();
17.
18.?>

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

পদ্ধতি ২ (global $number)

এই পদ্ধতিতে একটা ম্যাজিক আছে একটু ভালভাবে পড়ুন।ধরুন আগের মতই ফাংশনের বাইরের $number (যেটা গ্লোবাল) ভেরিয়েবলটিকে ব্যবহার করার জন্য আমাদের শুধু $number এর আগে global শব্দটি লিখে দিতে হবে।অর্থাৎ নিচের মত

1.global $number

এবং এরপর থেকে যদি শতবারও এই ভেরিয়েবলটি ব্যবহার করতে হয় তাহলে কিভাবে লিখবেন? global $number এভাবে? না।বরং এভাবে $number. এবার ম্যাজিকটার কথা বলি নিচের কোড দেখুন

01.<?php
02.$number = 8;
03.
04.function calculation(){
05.global $number;
06.$number  = 10;
07.
08.$anothernumber = 20;
09.
10.$addnumber  = $number+$number;
11.
12.echo $addnumber;
13.
14.}
15.
16.calculation();
17.
18.?>

উপরের কোডে (যেখানে $GLOBALS অ্যারে ব্যবহার করলাম) ৬ নম্বর লাইনে $number হচ্ছে লোকাল ভেরিয়েবল আর এই কোডে এই লাইনটি দ্বারা গ্লোবাল ভেরিয়েবলে নতুন নাম্বার ১০ assign করা হয়েছে।(কারনতো আগেই বলেছি যে global $number কে ব্যবহার করতে এখন $number এভাবে লিখতে হবে)

এরপর ১০ নম্বর লাইনে এই ভেরিয়েবলটির সাথে তাকেই আবার যোগ করেছি,কোড রান করান আউটপুট আসবে ২০।কাজেই global শব্দ ব্যবহার করে ভেরিয়েবল ব্যবহারের সময় সতর্ক থাকতে হবে।সবচেয়ে ভাল $GLOBALS[“number”] এভাবে ব্যবহার করুন।তাহলে আর কোন শংকা থাকেনা।

আরেকটা গুরত্বপূর্ন জিনিস,নিচের কোড দেখুন এখানে echo করলে আউটপুট কত আসবে?১০, ২০ না ৩০?

1.<?php
2.$number = 10;
3.$number = 20;
4.$number = 30;
5.echo $number;
6.?>

উত্তর হচ্ছে ৩০,কারন প্রথমে $number এর মান ছিল ১০,এরপরের বার $number এর মান assign করা হয়েছে ২০ আর সব শেষে ৩০ এবং শেষেরটা echo হয়েছে।

এই কোডের উপরের কোডটাতে যখন global $number লিখেছিলাম তখন এর মান ছিল ৮ (কারন ফাংশনের বাইরে গ্লোবাল $number এর মান ৮ আছে) পরের লাইনে $number = 10 দেয়াতে এর মান assign হয়েছে ১০ এবং এটিই এখন এর আসল মান।

স্টাটিক ভেরিয়েবল

কোন ভেরিয়েবলের সামনে static শব্দটি লিখলে সেটা স্টাটিক ভেরিয়েবল হয়ে যায়।একটা ফাংশনে স্টাটিক ভেরিয়েবল ব্যবহৃত হয়।ফাংশনের হেডারে প্যারমিটার থাকতে পারে এগুলিও ভেরিয়েবল।যখন ফাংশন এক্সিকিউট শেষ হয়ে যায় তখন ভেরিয়েবলগুলিও ধ্বংশ হয়ে যায়।স্টাটিক ভেরিয়েবল ব্যবহার করলে তা হয়না বরং ফাংশন শেষ হয়ে গেলেও এই ভেরিয়েবল মান ধরে রাখে এবং ঐ ফাংশনকে আবার call করলে তখন সে ধরে রাখা মানটি পাঠিয়ে দেয় যেমন

01.<?php
02.function test_stat() {
03.static $ekta_variable = 0;
04.$ekta_variable++;
05.echo $ekta_variable;
06.echo "<br />";
07.}
08.test_stat();
09.test_stat();
10.test_stat();
11.?>

ব্যাখ্যা:ফাংশনে প্রথমে $ekta_variable ভেরিয়েবলের মান ছিল ০ আর $ekta_variable++ দ্বারা এই মান ১ বৃদ্ধি পেল তাই প্রথম ফাংশনটা call করাতে আউটপুট দিল ১,এখন $ekta_variable এর মান ০ থেকে হয়ে গেল ১।এরপর দ্বিতীয়বার ফাংশটাকে call করাতে আউটপুট দিল ২ এভাবে বাকিগুলি।

যদি static শব্দটি উঠিয়ে দেন তাহলে আউটপুট আসবে

1

1

1

আর স্টাটিক ভেরিয়েবল ব্যবহারের কারনে এখন আউটপুট আসবে

1

2

3

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

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

1.<?php
2.printf("Your browser is: %s", $_SERVER['HTTP_USER_AGENT']);
3.?>

আউটপুট

Your browser is: Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2

এখানে $_SERVER[‘HTTP_USER_AGENT’] হচ্ছে সুপারগ্লোবাল ভেরিয়েবল।এরকম আরো আছে যেমন

$_SERVER[‘REMOTE_ADDR’] এটা দিয়ে ক্লাইন্টের আইপি এড্রেস জানতে পারবেন।

$_POST

$_GET

$_FILES আপলোডকৃত ফাইলের তথ্য আনা যায়

$_ENV

$_SEESION

$_COOKIE

এগুলির প্রতিটির উপর পরে আলাদা আলাদা টিউটোরিয়াল আছে তাই এখানে বিস্তারিত দেয়া হলনা।

কনস্টান্ট

ভেরিয়েবলের মান কোডে বিভিন্ন সময় বিভিন্ন রকম হয় বা পরিবর্তন হয়।কিন্তু কনস্টান্টের মান নির্ধারিত পরিবর্তন হবেনা পুরো স্ক্রিপ্টে। পিএইচপিতে define() ফাংশন দ্বারা কনস্টান্ট এর মান ঠিক করে দেয়া যায়।যেমন

1.<?php
2.define ('TUTORIAL','Webcoachbd is a informative tutorial site');
3.echo TUTORIAL;
4.?>

আউটপুট

Webcoachbd is a informative tutorial site

একবার মান ঠিক করে দিলে আর কখনও এই মান পরিবর্তন হবেনা।যেমন পাই (Π) এর মান ৩.১৪১৬ ,এদের মান নির্ধারন করার ক্ষেত্রে কনস্টান্ট ব্যবহার করা উপকারী।

পিএইচপি স্ট্রিং টিউটোরিয়াল (PHP String Tutorial in Bangla)

পিএইচপি স্ট্রিং এতক্ষন ব্যাবহার করলেও গভীর আলোচনা করা হয়নি।পিএইচপি Career এ এই স্ট্রিং একটা গুরত্বপূর্ন ভূমিকা পালন করে।তাই এ ব্যাপারে পরিষ্কার ধারনা থাকা আবশ্যক।

স্ট্রিং ব্যাবহারের আগে এটাকে তৈরী করে নিতে হবে।একটা স্ট্রিং সরাসরি একটা ফাংশনে ব্যাবহার হতে পারে অথবা একটা ভ্যারিয়েবলে store থাকতে পারে।নিচে দেখুন একই স্ট্রিং দুবার তৈরী করেছি,একবার ভ্যারিয়েবলে store করা হয়েছে আরেকবার সরাসরি echo করা হয়েছে।

1.<?php
2.
3.$my_string = "o merciful make me bold and brave!";
4.echo " o merciful make me bold and brave!";
5.echo $my_string;
6.?>

উপরের উদাহরনে প্রথম স্ট্রিং কে $my_string ভ্যারিয়েবলে ঢুকিয়ে দেয়া হয়েছে আর দ্বিতীয়বার আরেকটা স্ট্রিং কে echo করা হয়েছে,কোনো ভ্যারিয়েবলে না store করেই।একটা জিনিস মাথায় রাখতে হবে যে যখনই কোন স্ট্রিং  কে আমরা একাধিকবার ব্যাবহারের প্লান করব শুধু তখনই এটাকে কোনো ভ্যারিয়েবলে ঢুকিয়ে store করে রাখব।

আচ্ছা এবার উপরের কোডটুকু লিখে  সেভ করে রান করান।ব্রাউজারে নিচের মত আউটপুট পাবেন।

php string

এতক্ষনতো Double quotes দ্বারা স্ট্রিং তৈরী করা হয়েছে এখন Single quotes দ্বারা স্ট্রিং তৈরী করতে পারেন বরং এটাই ঠিক,তা নাহলে আসলেতো ওটা apostrophes নামে পরিচিত।

1.<?php
2.
3.$my_string = ‘o merciful make me bold and brave!’;
4.echo ‘o merciful make me bold and brave!’;
5.echo $my_string;
6.?>

যদি স্ট্রিং এর ভিতর single quotes ব্যাবহার দরকার হয় তাহলে এভাবে করুন-

echo ‘PHP it\’s neat’

আমরা এখানে আপাতত double quotes ব্যাবহার করব এতে কিছু সুবিধা আছে যেটা single quotes এ নাই।

পিএইচপি লেখার যে পদ্ধতিদুটি আলোচনা করা হল এ দুটি সাধারনত সব প্রোগ্রামিং ল্যাংগুয়েজ এর ক্ষেত্রে ব্যাবহৃত হয়,কিন্তু পিএইচপি তে একটা পাওয়ারফুল টুল আছে যেটা দিয়ে বহুলাইনের স্ট্রিং লেখা যায় কোনো quotation ব্যাবহার করা ছাড়াই।সেটা হল heredoc,একটু সতর্কতার সাথে স্ট্রিং কোডিং করতে হবে নাহলে ঝামেলা হবে।নিচে দেখুন কিভাবে এটা করতে হয়-

1.<?php
2.$my_string = <<<TEST
3.He will be succeeded here
4.and here after!
5.TEST;
6.echo $my_string;
7.?>

এভাবে যদি স্ট্রিং লেখেন তাহলে কয়েকটি জিনিস অবশ্যই খেয়াল রাখতে হবে-

*<<< বা কিছু identifier আছে যা আপনাকে ব্যাবহার করতে হবে heredoc শুরু করার আগে যেমন আমি TESTব্যাবহার করেছি।

*শেষেও এটি ব্যাবহার করেছি এবং সেমিক্লোন দিয়ে শেষ হবে।

*এটা নিজেই একটা লাইন হবে,(indent) ফাকা রেখে লাইনটি শুরু করা যাবেনা।

আউটপুট নিচের মত আসবে যেহেতু আমরা <br>(লাইনের ব্রেক দেয়ার জন্য ব্যাবহৃত হয়)ট্যাগ স্ট্রিং এর ভিতর ব্যাবহার করিনি।

php string2

পিএইচপি অপারেটর টিউটোরিয়াল( PHP Operators)

অপারেটরস – ভ্যালু বা ভ্যারিয়েবলকে manipulate করতে ব্যাবহৃত হয়।৩ ধরনের অপারেটর আছে

১.Unary – একটা ভ্যালু বা ভ্যারিয়েবলকে(operand) নিয়ে কাজ করে।

২.Binary-দুটি ভ্যালু বা ভ্যারিয়েবলকে নেয়।

৩.Ternary- ৩টি ভ্যালু বা ভ্যারিয়েবলকে নিয়ে থাকে।

এর পাশাপাশি আমরা Operatorগুলোকে অনেকভাবে শ্রেনীবদ্ধ করতে পারি যেমন-Arithmetic, Assignment, Comparison Operator etc.

অ্যাসাইনমেন্ট অপারেটর (Assignment Operator)

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

$my_var = 4;

$another_var = $my_var;

এখন $my_var ও $another_var উভয়েরই মান হল ৪.

Operator

English

Example

+

Addition

2+4

Subtraction

6-2

*

Multiplication

5*3

/

Division

15/3

%

Modulus

43%10

01.<?php
02.$addition = 2 + 4;
03.$subtraction = 6 - 2;
04.$multiplication = 5 * 3;
05.$division = 15 / 3;
06.$modulus = 5 % 2;
07.echo "Perform addition: 2 + 4 = ".$addition."<br />";
08.echo "Perform subtraction: 6 - 2 = ".$subtraction."<br />";
09.echo "Perform multiplication:  5 * 3 = ".$multiplication."<br />";
10.echo "Perform division: 15 / 3 = ".$division."<br />";
11.echo "Perform modulus: 5 % 2 = " . $modulus ?>

সেভ করে রান করান এমন দেখাবে-

তুলনামুলক অপারেটর (Comparison Operator)

এই Operator ভ্যালু বা ভ্যারিয়েবল এর মধ্যে relationship চেক করে।এই Operator  কন্ডিশনাল statement এর ভিতর থাকে আর নির্নয় করে statement true নাকি false.

এখানে বহুল ব্যাবহৃত  কিছু Comparison Operator দেয়া হল-

$x=4 ও $y=5 ধরে

Operator

English

Example

Result

==

Equal to

$x=$y

False

!=

Not equal to

$x!=$y

True

<

Less than

$x<$y

True

>

Greater than

$x>$y

False

<=

Less than equal to

$x<=$y

True

>=

Greater than equal to

$x>=$y

False

স্ট্রিং অপারেটর (String Operator)

এটাতো আগেই আমরা দেখেছি আর ব্যাবহারও করেছি-“”, ‘’

Arithmetic এবং Assignment Operator এর Combination

Programming এ একটা পরিচিত কাজ হচ্ছে একটা ভ্যারিয়েবলকে নির্দিষ্ট হারে বাড়ানো,যেমন গননার ক্ষেত্রে।আমি যদি ১ করে বাড়াতে চাই তাহলে

$counter=$counter+1;

যাহোক সংক্ষেপে এভাবে লেখে

$counter+=1;

Pre/Post-Increment  এবং Pre/Post-Decrement:

উপরেরটা একটু অদ্ভুত মনে হতে পারে,এটার আরেকটা সর্টকাট মেথড আছে কোন ভ্যরিয়েবল থেকে ১ করে বাড়ানো বা কমানোর

$x++ যেটা $x += 1; অথবা $x = $x + 1 এর সমান।

আর কমানোর ক্ষেত্রে শুধু “-” অপারেটরটা ব্যাবহৃত হবে।

পিএইচপি কন্ডিশনাল স্টেটমেন্ট (PHP Conditional Statement)

কোনো শর্তের উপর কোনো action নেয়ার জন্য কন্ডিশনাল স্টেটমেন্ট ব্যাবহৃত হয়।ধরুন আমি আমার ওয়েবসাইটে এমন একটা feature যোগ করতে চাই যাতে যদি কেউ আমার সাইটে দুপুর ১২ টার আগে ঢুকে তাহলে দেখাবে “Good Morning” আর যদি কেউ বিকেল ৫ টার পর ঢুকে তাহলে দেখাবে “Good evening” এই ধরনের বরং এর চেয়েও মজাদার ও অ্যাডভান্সড কাজগুলো করতে Conditional statement এর দরকার,condition এর উপর ভিত্তি করে পিএইচপি স্বয়ংক্রিয়ভাবে কাজগুলো করতেই থাকে।

পিএইচপি তে কয়েক ধরনের Conditional statement আছে-

*if statement

*if…else statement

*if…elseif…else statement

*Switch statement

*if statement

if statement টি দিয়ে কিছু কোড execute করা হয় যখন আমাদের দেয়া condition টি true হয়।নিচে উদাহরনের আউটপুট হবে Have a nice day যদি ঐ দিন Saturday হয় যেদিন কোডটা লিখে রান করাবেন।

1.<?php
2.$d=date("D");
3.if ($d=="Sat")
4.echo "Have a nice Day";
5.?>

*if…else statement

আচ্ছা কখনও তো একথা শুনেছেন যদি পরিশ্রম কর তাহলে ভাল ফল পাবে,কি হবে যদি পরিশ্রম না করেন,ফেইল।এটাই if…else statement এর উদাহরন।এগুলোতো অনেক সময় আমরা বাস্তবেই ব্যাবহার করে থাকি এখন শুধু এটাকে পিএইচপি কোড দিয়ে লিখব।

1.<?php
2.$d=date("D");
3.if ($d=="Sat") echo "Have a nice Day";
4.else
5.echo “Today is not saturday”;
6.?>

দেখুন condition যেটা দিয়েছি যদি সেটা true হয় অর্থ্যাৎ কোডটা যেদিন রান করাবেন সেদিন যদি Saturday হয় তাহলে আউটপুট হবে Have a nice day আর তা নাহলে Today is not Saturday.

*If…elseif…else statement

এই statement দ্বারা এক বা একাধিক কোডের ব্লক execute করা যায়।

01.<html>
02.<body>
03.<?php
04.if ($number>=60)
05.echo "First Division";
06.elseif ($number>=45 and $number<60)
07.echo “Second Division”;
08.elseif($number>=33 and $number<45)
09.echo "Third Division";
10.else
11.echo “Failed”;
12.?>
13.</body>
14.</html>
পিএইচপি লুপ টিউটোরিয়াল (PHP Loop Tutorial in Bangla)

আসলে এককাজ বারবার করতে আমাদের সকলেরই খারাপ লাগে যেমন একই সিল ৫০টা ইনভেলপ এর মধ্যে মারা বা ধরুন একই কথা ১০০টা পেজের মধ্যে লেখা ইত্যাদি।প্রোগ্রামিং এ মজার ব্যাপারটা হচ্ছে একটু চিন্তা করলেই এইসব পূনরাবৃত্তির কাজ কয়েক লাইন লিখেই করা যায়।লুপ দিয়ে এগুলো করা যায়।

লুপ হচ্ছে এমন একটা statement যেটা দিয়ে একটা কোডের ব্লক কে নির্দিষ্ট কয়েকবার execute করা যায় যতক্ষন না আমাদের কাজটা শেষ হয়।

৪ ধরনের লুপ আছে-

While Loop

Do…while Loop

For Loop

Foreach Loop

পিএইচপি While লুপ

যখন একটা condition true হয় তখন while লুপ টি একটা কোড ব্লক কে execute করে।

সংকেত

1.while (condition)
2.{
3.code to be executed;
4.}

যদি condition false হয় তখন ব্রাকেটের ভিতর কোডটি এড়িয়ে যায়।যখন শেষের ব্রাকেটটি আসবে তখন condition আবার চেক করবে,true হলে কোড আবার execute করবে।condition এ যতবার দেয়া আছে ততবার এভাবে চলবেই।যেমন:

01.<html>
02.<body>
03.<?php
04.$i=1;
05.while($i<=5)
06.{
07.echo "The number is " . $i . "<br />";
08.$i++;
09.}
10.?>
11.</body>
12.</html>

প্রথমে i=1.  এরপর while($i<=5) অর্থ্যাৎ লুপটি ততক্ষন চলবে যতক্ষন I এর মান ৫ থেকে ছোট বা সমান হবে।আর লুপটি প্রতিবার ১ করে বাড়বে।কোডটি রান করলে আউটপুট আসবে এমন-

The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

এবার I এর মান ৬ দিলে কি আউটপুট আসবে?কিছুই আসবেনা কারন তখন এটি while loop এর সাথে মিলবেনা তাই কোড execute হবেনা।

Do…while loop

এটা while loop এর মতই শুধু পার্থক্য এটুকু যে condition টি শেষে test করা হয়,শুরুতে করার পরিবর্তে,যেটা হয় while লুপ এ।অর্থাৎ কমপক্ষে একবার লুপ টি execute হবেই।

সংকেত

1.Do
2.{
3.Code to be executed
4.}
5.While(condition);

যেমন নিচের উদাহরনটির কোডটিও উপরের মত একই আউটপুট দেবে শুধু কাজ করবে ভিন্নভাবে।

01.<?php
02.$i=1;
03.do
04.{
05.$i++;
06.echo "The number is " . $i . "<br />";
07.}
08.while ($i<=5);
09.?>

কিন্তু এখানে যদি i=6 দেই তাহলে কি হবে?নিচের মত

This is line 6

This line is outside while loop.so it will not repeat.

দেখুন লুপ টি প্রথমবার চেকিং ছাড়াই একবার কোড execute হয়েছে।প্রথমবার execution এর পর চেক করেছে যে লুপটি repeat হবে কিনা?কিন্তু while loop এ প্রথমবারই এই চেক হয়।

পিএইচপি ফর লুপ টিউটোরিয়াল(PHP For Loop)

এই লুপ টি একটু জটিল।ফর লুপ এর কাজ while লুপ দিয়েও হয়,তবে কিছু সুবিধার কারনে এটি ব্যাহৃত হয়।

সংকেত

1.for (init; condition; increment)
2.{
3.code to be executed;
4.}

for loop statement   ব্রাকেটের ভিতর ৩টি expression নেয় যেগুলো সেমিক্লোন দ্বারা বিভক্ত হয়।১ম টি assignment statement(loop control variable),প্রথমবার লুপটি পূনরাবৃত্তির আগেই এটা একবার execution হয়।২য় টি Boolean expression  যেটা প্রতিবার পূনরাবৃত্তির আগেই একবার এর মান নির্নীত(evaluate)হয়,এই মান true হলে পূনরাবৃত্তি চলবে আর false return  করে তাহলে পূনরাবৃত্তি বন্ধ হয়ে যাবে।৩য় টি দিয়ে loop control variable এর মান বাড়াতে বা কমাতে ব্যাবহৃত হয়।নিচের উদাহরনটি দেখুন লুপটি শুরু হয়েছে i=1 দিয়ে এবং এটি চলবে যতক্ষন I এর মান ৫ এর চেয়ে ছোট বা সমান হয়।আর I এর মান ১ করে বাড়বে।

1.<?php
2.for ($i=1; $i<=5; $i++)
3.{
4.echo "The number is " . $i . "<br />";
5.}
6.?>

Output

The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

যেকোন expression ফাকা বা একটিতে একাধিক expression থাকতে পারে,যেগুলো কমা দ্বারা বিভক্ত হবে।যদি Boolean expression ফাকা থাকে তাহলে এর default মান true হয়।এই উদাহরনে সবগুলির আউটপুট ১-১০ হবে।

আরেকটা লুপ আছে নাম foreach loop এটি array এর সাথে ব্যাবহৃত হয় তাই পরে আসছি।

পিএইচপি অ্যারে টিউটোরিয়াল (PHP Array )

পৃষ্ঠা 1 মোট পৃষ্ঠা 2

একটা ভেরিয়েবল একটা single value এর পাত্র(container).কিন্তু অ্যারে একাধিক

value’র container বা পাত্র।একটা অ্যারে হল কিছু উপাদান নিয়ে গঠিত যেখানে

প্রত্যেকটি উপাদানের নির্দিষ্ট value আছে-key বা index বলে যেটা দিয়ে উপাদানটিকে

রেফার করা হয়।ধরুন আপনার কাছে কিছু শহরের নামের লিস্ট আছে এখন যদি এগুলোকে

কোনো single variable এ store করে রাখতে চান তাহলে এমন হবে-

$city1= “Dhaka”

$city2= “Chittagong”

$city3= “Rajshahi”

$city4= “Sylet”

$city5= “Khulna”

$city6= “Barishal”

কিন্তু একটা অ্যারে এসবগুলোকে একটা ভ্যারিয়েবল এ ধরে রাখতে পারে।অ্যারের

সাধারন গঠন পদ্ধতি হচ্ছে কিছু উপাদানের ক্রম (series of element) যার

উপাদানগুলির index ০ থেকে শুরু হয়ে ক্রমানুসারে বাড়তে থাকবে।বেশ কয়েকভাবে

অ্যারে লেখা যায় সবচেয়ে সহজটি হচ্ছে-

1.<?php
2.
3.$city = array("Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
4.
5.?>

ব্যাস একটা variable এ সব শহরের নাম store হয়ে গেছে,প্রতিটি শহরের নাম

এক একটি উপাদান এবং প্রতিটি উপাদানে একটি index নির্দিষ্ট হয়ে গিয়েছে।

array’র ১ম উপাদান এর index/key হচ্ছে ০ তাহলে এখানে Dhaka[0],

Chittagong[1]… এভাবে বাকিগুলো।এখন আপনি যেকোন উপাদান এর

index number উল্লেখ করে সে উপাদানটি পেতে পারেন।যেমন

1.<?php
2.
3.Print "$city[3]";
4.
5.?>

তবে যদি আমরা চাই তাহলে অ্যারের এই ডিফল্ট ভ্যালু পরিবর্তন করে দিতে পারি,=>

এই অপারেটরটি দিয়ে।ধরি আমি চাচ্ছি এই উপরের অ্যারেটির starting index 2

দিয়ে শুরু হোক তাহলে এভাবে লিখতে হবে।

1.<?php
2.
3.$city=array(2=>"Dhaka", "Chittagong", "Rajshahi",
4.
5."Sylet", "Khulna", "Barishal", "Barishal");
6.
7.?>

এই অপারেটর যেকোন উপাদানের পূর্বে ব্যাবহৃত হতে পারে তার index নির্দিষ্ট করার জন্য।

অ্যাসোসিয়েটিভ অ্যারে (Associative array)

এতক্ষনতো পূর্ন সংখ্যার index/key দেখলাম আপনি চাইলে string ও ব্যাবহার

করতে পারেন।এটাকেই associative array বলে।যেমন:

1.<?php
2.
3.$ages = array("adnan"=>32, "rezwan"=>30, "refat"=>34);
4.
5.?>

মাল্টিডাইমেনশনাল অ্যারে (Multidimensional array)

এখানে একটা অ্যারের ভিতর প্রতিটি উপাদান একটি অ্যারে হতে পারে আবার এই সাব

অ্যারের প্রতিটি উপাদানও একটি অ্যারে হতে পারে এবং এভাবে আরও।

01.<?php
02.
03.$continents=array("Asia"=>array("Bangladesh",
04.
05."India","Pakistan"),"Europe"=>array("England",
06.
07."France"),"Africa"=>array("Kenya","Libya","Somalia"));
08.
09.?>

মাল্টিডাইমেনশনাল অ্যারের আরও তথ্য।

পিএইচপিতে মাল্টিডাইমেনশনাল অ্যারে প্রিন্ট করে কিভাবে??

এই সাইটে মাল্টিডাইমেনশনাল অ্যারের যে উদাহরনটি আছে সেটাই যদি প্রিন্ট করতে চান তাহলে

<?php
$continents=array("Asia"=>array("Bangladesh","India","Pakistan"),
"Europe"=>array("England","France"),"Africa"=>array("Kenya",
"Libya","Somalia"));
print ($continents["Africa"][2]);
?>

এই কোড রান করালে $continents অ্যারের সাবঅ্যারে “Africa” র দুই নম্বর এলিমেন্ট Somalia ব্রাউজারে প্রিন্ট হবে (আউটপুট আসবে)।এভাবে যেকোন অ্যারের ভিতরের কোন অ্যারের কোন এলিমেন্ট প্রিন্ট করতে পারেন।

foreach() লুপ সমাচার

foreach লুপ শুধুমাত্র অ্যারে ম্যানিপুলেট করার জন্য তৈরী করা হয়েছে।তাই এই লুপিং

সিস্টেম শুধুমাত্র অ্যারের উপরে কাজ করবে।foreach লুপে as শব্দের পরে যে ভেরিয়েবল

থাকে (আপনার ইচ্ছেমত এই ভেরিয়েবলের নাম দিতে পারেন) সেই ভেরিয়েবলে অ্যারের

এলিমেন্টগুলি একটা একটা করে আসবে।অন্যান্য লুপিং এ আমরা ঠিক করে দেই যে লুপিং

কত থেকে শুরু হবে এবং কত পর্যন্ত চলবে।আর এখানে অ্যারের প্রথম এলিমেন্ট থেকে লুপিং

শুরু হবে এবং অ্যারের শেষ এলিমেন্ট আসলে তখন লুপিং শেষ হবে।

01.<?php
02.
03.$city=array("Dhaka", "Chittagong", "Rajshahi",
04.
05."Sylet","Khulna", "Barishal", "Barishal");
06.
07.foreach ($city as $value)
08.
09.{
10.
11.echo "$value.<br>";
12.
13.}
14.
15.?>

Output

Dhaka

Chittagong

Rajshahi

Sylet

Khulna

Barishal

Barishal

range() ফাংশন দিয়ে অ্যারে তৈরী করা যায়।যেমন

01.<?php
02.
03.$numeric1 = range(10,15);
04.
05.//This is similar to
06.
07.$numeric1 = array(10,11,12,13,14,15);
08.
09.
10.
11.//array with optional parameter (even array)
12.
13.$numeric2 = range(10,20,2);
14.
15.//This is similar to
16.
17.$numeric2 = array(10,12,14,16,18,20);
18.
19.
20.
21.//array odd
22.
23.$numeric3 = range(11,21,2);
24.
25.//This is similar to
26.
27.$numeric3 = array(11,13,15,17,19,21);
28.
29.
30.
31.//letter array
32.
33.$letter = range("C","K");
34.
35.//This is similar to
36.
37.$letter = array("C","D","E","F","G","H","I","J","K");
38.
39.?>

এভাবে range() ফাংশন দিয়ে অ্যারে লেখার সুবিধা হচ্ছে বড় অ্যারেকে কত ছোট করে

লেখা যাচ্ছে কিন্তু কাজ একই।

অ্যারে চেক করা

is_array() ফাংশন দ্বারা একটা ভেরিয়েবল অ্যারে কিনা তা চেক করা যায়।যেমন

01.<?php
02.
03.//letter array
04.$letter = range("C","K");
05.
06.if(is_array($letter)){
07.echo "this is an array and its 3rd value is $letter[2]";
08.}else{
09.echo "this is not an array";
10.}
11.
12.?>

আউটপুট

this is an array and its 3rd value is E

অ্যারে উঠিয়ে দিয়ে কোন স্ট্রিং বা অন্যকিছু বসিয়ে দেখুন আউটপুট আসবে

this is not an array

print_r() দিয়ে অ্যারের সব কনটেন্ট দেখা

কোড ডিবাগিং এর সময় এটা কাজে লাগে।ধরুন উপরের letter অ্যারেটির সব

কনটেন্ট দেখতে চান তাহলে

1.print_r($letter);

আউটপুট

Array ( [0] => C [1] => D [2] => E [3] => F [4] => G [5] => H [6] => K )

পিএইচপি অ্যারে টিউটোরিয়াল (PHP Array ) – আ্যারে ম্যানিপুলেট করার কতিপয় ফাংশন

পৃষ্ঠা 2 মোট পৃষ্ঠা 2

আ্যারে ম্যানিপুলেট করার কতিপয় ফাংশন

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

array_unshift() ফাংশন

একটা অ্যারের সামনে একটা এলিমেন্ট যোগ করতে এই ফাংশন ব্যবহার হয়।যেমন সবার প্রথমে $city ভেরিয়েবলে যে অ্যারেটি রেখেছি সেই অ্যারের প্রথমে Rangpur এবং Kurigram এই দুটি এলিমেন্ট যোগ করব।

01.<?php
02.
03.$city = array("Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
04.
05.array_unshift($city,"Rangpur","Kurigram");
06.
07./Now $city will be
08.
09.$city = array("Rangpur","Kurigram","Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
10.
11.?>

নতুন এলিমেন্ট যোগ করাতে ইনডেক্স বা key অটোমেটিক আপডেট হবে।যেমন আগে Dhaka যদি আউটপুট চাইতেন তাহলে echo $city[0]; এভাবে লিখতে হত আর এখন echo $city[2]; এভাবে লিখতে হবে।আর অ্যাসোসিয়েটিভ ইনডেক্স থাকলে তার কোন পরিবর্তন হবেনা।

array_push() ফাংশন

একটা অ্যারের শেষে এলিমেন্ট যোগ করতে চাইলে এই ফাংশন ব্যবহার করতে পারেন।যেমন উপরের কোডে array_unshift এর জায়গায় শুধু array_push যোগ করলেই Rangpur এবং Kurigram এলিমেন্ট অ্যারের শেষে গিয়ে যোগ হবে।

array_shift() ফাংশন

এই ফাংশন অ্যারের প্রথম এলিমেন্ট কে মুছে দেবে।যদি $city অ্যারের প্রথম এলিমেন্ট সরাতে চাই তাহলে

01.<?php
02.
03.$city = array("Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
04.
05.array_shift($city);
06.
07.//Now $city will be
08.
09.$city = array("Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
10.
11.?>

এই ফাংশনটি শুধু প্রথম এলিমেন্ট কে দুর করেনা বরং প্রথম এলিমেন্ট নিয়ে একটা অ্যারে তৈরী করে সেটা রিটার্ন করে যেমন এই কোডে ৫ নম্বর লাইন যদি $newCity = array_shift($city); এভাবে লিখে এই ভেরিয়েবল টি echo করেন তাহলে আউটপুট আসবে Dhaka

array_pop() ফাংশন

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

in_array() ফাংশন

এই ফাংশন দিয়ে একটা অ্যারের ভিতরে কোন এলিমেন্ট কে খুজে বের করা যায়।যদি খুজে পায় তাহলে true রিটার্ন করবে তা নাহলে false রিটার্ন করবে।যেমন

01.<?php
02.
03.$newCity = "Chittagong";
04.
05.$city = array("Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
06.
07.if(in_array($newCity,$city))
08.
09.echo "In Bangladesh most of the islamic scholars lives in $newCity";
10.
11.?>

sort() ফাংশন

এই ফাংশন দিয়ে অ্যারে কে নিম্নমান থেকে উচ্চমান এই ক্রমানুসারে সাজানো যায়।যেমন:

1.<?php
2.
3.$num = array(2,6,8,1,6,8);
4.
5.sort($num);
6.
7.?>

rsort() দিয়ে এর বিপরীতক্রমে সাজানো যায়।অ্যারের এরুপ আরো অনেক ফাংশন আছে।পিএইচপি ম্যানুয়ালে সব আছে।যখন যেটা প্রয়োজন হবে দেখে নিতে পারেন।

পিএইচপি ফাংশন টিউটোরিয়াল (PHP Function)

পৃষ্ঠা 1 মোট পৃষ্ঠা 3

এটা হচ্ছে একটা নাম যেটা আমি কোনো কোডব্লককে দিতে পারি এবং পরে সেই নাম ধরে ডেকে ঐ কোডব্লককে ইচ্ছেমত execution করাতে পারি।এটা পিএইচপি এর মূল শক্তি বলতে পারেন।প্রায় ১০০০ এরও বেশি বিল্ট ইন ফাংশন আছে পিএইচপি তে।

একটা ফাংশনকে যখন কল করা হয় তখনই এটা execute হয় আর পেজের যেকোনো জায়গা থেকে একটা ফাংশনকে কল করা যায়।

সংকেত

1.function functionName()
2.{
3.code to be executed;
4.}

টিপস:ফাংশনের নাম দেয়ার সময় এমন নাম দিন যেটা দেখেই যেন বোঝা যায় ফাংশনটি কি করবে।

ফাংশনের নাম অক্ষর বা _ দিয়ে শুরু হতে পারে,নাম্বার দিয়ে শুরু হবেনা।

একটা simple ফাংশন যেটা দিয়ে আমার নাম লিখব

01.<?php
02.function writeName()
03.{
04.echo "Md.Rejoanul Alam";
05.}
06.
07.echo "My name is ";
08.writeName();
09.?>

Output

My name is Md.Rejoanul Alam

পিএইচপি ফাংশন টিউটোরিয়াল (PHP Function) – ফাংশন প্যারামিটার

writeName() ফাংশনটি পরে কল করা হয়েছে এর আগে ফাংশনটি তৈরী বা define  করেছি,তবে ইচ্ছে করলে ফাংশনটি আগে কল করতে পারেন এরপর ফাংশনটি লিখতে পারেন।যেমন

01.<?php
02.echo "My name is ";
03.writeName();
04.function writeName()
05.{
06.echo "Md.Rejoanul Alam";
07.}
08.
09.?>

আউটপুট উপরের মতই আসবে

My name is Md.Rejoanul Alam

পৃষ্ঠা 2 মোট পৃষ্ঠা 3

ফাংশনে প্যারামিটার যোগ করা

ফাংশনে প্যারামিটার যোগ করে আরও ফাংশনালিটি বাড়ানো যায়,এটা একদম PHP variable এর মতই।ফাংশনের নাম লেখার পর এটা ব্রাকেটের ভিতর লেখা হয়।যেমন

01.<?php
02.function writeName($fname)
03.{
04.echo $fname . " Alam.<br />";
05.}
06.
07.echo "My name is ";
08.writeName("Rejoanul ");
09.echo "My Father's name is ";
10.writeName("Samad");
11.echo "My brother's name is ";
12.writeName("Anjirul");
13.?>

Output

My name is  Rejoanul Alam.
My Father’s name is Samad Alam.
My brother’s name is Anjirul Alam.

একটা ফাংশনে একাধিক প্যারমিটার যোগ করতে পারেন যেমন

01.<?php
02.
03.
04.function aCalculation($firstNumber, $secondNumber){
05.$total = $firstNumber + $secondNumber;
06.echo "Result is  $total<br />";
07.}
08.
09.
10.aCalculation(5,6);
11.aCalculation(10,20);
12.aCalculation(8,9);
13.?>

output

Result is 11
Result is 30
Result is 17

এখানে aCalculation(5,6) তে ৫ এবং ৬ হচ্ছে আর্গুমেন্ট।ফাংশনটিতে দুটি প্যারামিটার (ভেরিয়েবল) আছে তাই প্রতিবার ফাংশনটি কল করার সময় দুটি করে মান পাঠিয়েছি।যদি একটা মান পাঠানো হত তাহলে missing argument  এধরনের এরর দেখাবে।

ফাংশন কল করার সময় এভাবে সরাসরি মান না দিয়ে ভেরিয়েবল দিতে পারেন।যেমন

01.<?php
02.
03.
04.function aCalculation($firstNumber, $secondNumber){
05.$total = $firstNumber + $secondNumber;
06.echo "Result is  $total<br />";
07.}
08.$argument1 = 6;
09.$argument2 =10;
10.aCalculation($argument1,$argument2);
11.?>

আউটপুট:

Result is 16

প্যারামিটারের ডিফল্ট মান ঠিক করে দিতে পারেন।যেমন $secondNumber= 20।যে প্যারামিটারের ডিফল্ট মান ঠিক করে দিবেন সেটা অবশ্যই শেষে থাকতে হবে।

01.<?php
02.
03.
04.function aCalculation($firstNumber, $secondNumber = 20){
05.$total = $firstNumber + $secondNumber;
06.echo "Result is  $total<br />";
07.}
08.aCalculation(100);
09.?>

আউটপুট

Result is 120

তবে যদি aCalculation (100,50) এভাবে পাঠান তাহলে আউটপুট ১৫০ আসবে অর্থ্যাৎ কোন মান না দিলে তখন ডিফল্ট মান টি ব্যবহৃত হবে।প্যারামিটারের ডিফল্ট মান ভেরিয়েবল বা এধরনের কিছু দেয়া যাবেনা,স্টাটিক মানই দিতে হবে যেমন একটা সংখ্যা।

যাইহোক এভাবে আর্গুমেন্ট পাঠানো এটাকে বলে মান দিয়ে আর্গুমেন্ট পাঠানো (passing argument by value) এছাড়া আরো একভাবে আর্গুমেন্ট পাঠানো যায় এটাকে বলে রেফারেন্স দিয়ে আর্গুমেন্ট পাঠানো (passing argument by reference) যেমন

01.<?php
02.$cost = 100;
03.$vat = 0.15;
04.function calculatePrice(&$cost, $vat)
05.{
06.$cost = $cost + ($cost * $vat);
07.$vat+= 4;
08.}
09.calculatePrice($cost, $vat);
10.printf("Vat is %06.2f%% ", $vat*100);
11.printf("Cost is: $%07.2f", $cost);
12.?>

আউটপুট

Vat is 015.00% Cost is: $0115.00

কখনও আপনি এটা চাইতে পারেন যে,একটা ফাংশনের ভিতর আর্গুমেন্ট এর পরিবর্তন করবেন আর এটার প্রভাব ফাংশনের বাইরে গিয়ে পরবে।তখন এভাবে প্যারামিটার (ভেরিয়েবল) এর সামনে & (ampersand) চিহ্ন দিয়ে পিএইচপি কে বুঝাতে হবে।

পিএইচপি ফাংশন টিউটোরিয়াল (PHP Function) – ফাংশন খেকে মান ফেরত পাঠানো

পৃষ্ঠা 3 মোট পৃষ্ঠা 3

একটা ফাংশনের ভ্যালু return করতে return statement ব্যাবহার করতে হয়।যেমন

01.<?php
02.function add($x,$y)
03.{
04.$total=$x+$y;
05.return $total;
06.}
07.
08.echo "1 + 16 = " . add(1,16);
09.?>

একটা ফাংশন থেকে একাধিক মান রিটার্ন করতে পারেন।এক্ষেত্রে list() কনস্ট্রাক্ট ব্যবহার করে করতে পারেন যেমন

01.<?php
02.function webcoachbdTutorial(){
03.$quality[] = "Informative site";
04.$quality[] = "Easy to Understand";
05.$quality[] = "easy to navigate";
06.return $quality;
07.}
08.list($info1,$info2,$info3) = webcoachbdTutorial();
09.echo "Webcoachbd is $info1,$info2,$info3";
10.?>

list যখন এক্সিকিউট হবে তখন webcoachbdTutorial() ফাংশনটির রিটানকৃত মানগুলি যথাক্রমে $info1, $info2 এবং $info3 ভেরিয়েবলে ঢুকে যাবে।

আউটপুট

Webcoachbd is Informative site,Easy to Understand,easy to navigate

**সব প্রোগ্রামিং ল্যাগুয়েজের ফাংশনের মুল কনসেপ্ট একই।তাই জাভাস্ক্রিপ্ট ফাংশন টিউটোরিয়ালটি দেখে আসতে পারেন।এখানেও অনেক তথ্য আছে।

পিএইচপি ফর্ম টিউটোরিয়াল (PHP Form)

এতক্ষন পিএইচপি’র যত কিছু শেখা হল এবার তা প্রয়োগের সময় এসেছে।ফর্ম ইউজার থেকে তথ্য নিতে ব্যাবহৃত হয়।এই তথ্য পিএইচপি পেজ দিয়ে যায় এবং পিএইচপি দিয়েই এটা করা হয়।পিএইচপি তে দুটি ভেরিয়েবল আছে যা ফর্ম হতে ডেটা(ইউজার ইনপুট) তুলে আনতে ব্যাবহৃত হয়-$_GET এবং $_POST.একটা এইচটিএমএল ফর্ম দেখানো হল যার দুটি ইনপুট ফিল্ড আর একটি সাবমিট বাটন আছে।

1.<form action="welcome.php" method="post">
2.Name: <input name="fname" />
3.Age: <input name="age" />
4.<input type="submit" />
5.</form>

php form tutorial

ইউজার যখন ফর্মটি পূরন করে সাবমিট বাটনে ক্লিক করবে তখন ডেটা পিএইচপি ফাইলে চলে যাবে যার নাম “welcome.php” এখানে আরেকটা জিনিস নিশ্চয় লক্ষ্য করেছেন যে কোডটিতে method=POST দেয়া আছে,Form এর ডেটা পিএইচপি  তে নিতে দুটি পদ্ধতি ব্যাবহার হয় POST এবং GET.

welcome.php  ফাইলটি হবে এমন

1.Welcome <?php echo $_POST["fname"]; ?>!<br />
2.You are <?php echo $_POST["age"]; ?> years old.

এখন ধরুন আপনি ফর্মটিতে নামের জায়গায় দিলেন rezwan এবং age দিলেন 24,এবার সাবমিট বাটনে ক্লিক করলে আউটপুট পাবেন এমন

Welcome rezwan!
You are 24 years old.

পিএইচপি $_GET মেথড (PHP $_GET Method)

ফর্মের তথ্য GET মেথড এ পাঠালে সকল তথ্য ব্রাউজার এড্রেসবারে প্রদর্শিত হয় এবং সবাই দেখতে পায়।তাছাড়া কতটুকু তথ্য পাঠানো যাবে তার একটি সীমা আছে সাধারনত সর্বোচ্চ ২৫০ টি character (এটা আসলে সার্ভার এবং ব্রাউজারের উপর নির্ভর করে যে তাদের URL এর দৈর্ঘ্য কতদুর হবে।)যেমন

1.<form action="welcome.php" method="get">
2.Name: <input name="fname" />
3.Age: <input name="age" />
4.<input />
5.</form>

যখন ইউজার সাবমিট বাটনে ক্লিক করবে তখন ব্রাউজার এড্রেসবারে নিচের মত দেখাবে

http://www.w3schools.com/welcome.php?fname=Peter&age=37

welcome.php ফাইলটি এখন $_GET Method ফাংশন ব্যাবহার করে ফর্মের ডেটা সংগ্রহ করবে।

1.Welcome <?php echo $_GET["fname"]; ?>.<br />
2.You are <?php echo $_GET["age"]; ?> years old!
পিএইচপি পোস্ট মেথড টিউটোরিয়াল (PHP $_POST Method)

এই পদ্ধতিতে যে তথ্যই পাঠানো হোক তা কেউ দেখতে পারেনা ব্রাউজারের এড্রেসবারেও প্রদর্শিত হয়না।

এখানে সুবিধা হল যত ইচ্ছা তথ্য পাঠাতে পারেন(আসলে সর্বোচ্চ ৮Mb পর্যন্ত পাঠানো যায়।)

1.<form action="welcome.php" method="post">
2.Name: <input name="fname" />
3.Age: <input name="age" />
4.<input />
5.</form>

এবার যখন ইউজার সাবমিট বাটনে ক্লিক করবে তখন ব্রাউজার এড্রেসবারে নিচের মত দেখাবে

http://www.w3schools.com/welcome.php

আর এবার ফর্মের ডেটা $_POST Method পদ্ধতিতে গৃহীত হবে।

1.Welcome <?php echo $_POST["fname"]; ?>!<br />
2.You are <?php echo $_POST["age"]; ?> years old.

কখন কোনটা ব্যাবহার করবেন

অল্প তথ্য হলে GET Method আর বেশি তথ্য এবং ইউজার নেম password ইত্যাদি ক্ষেত্রে POST Method ব্যাবহার করা ভাল।

ধন্যবাদ।


Leave a comment