Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

পিএইচপি টিউটোরিয়াল | বেসিক (PHP Tutorial Basics)




পিএইচপি  কি?:
পিএইচপি (PHP:Hypertext Preprocessor ) একটা সার্ভার সাইড স্ক্রিপ্টিং ল্যাংগুয়েজ যেটা মূলত ওয়েব ডেভেলপেমেন্টের জন্য ব্যবহৃত হয়। এই প্রোগ্রামিং ল্যাংগুয়েজটির উদ্দেশ্য হল ওয়েব পেজ দ্রুত তৈরী করা ডাইনামিকালি।

পিএইচপি শেখার আগে কি জানা থাকা দরকার:
১. এইচটিএমএল .বিশেষ করে এইচটিএমএল ফর্ম
২. C জানা থাকে তাহলে সুবিধা আছে।

  টিউটোরিয়াল লিঙ্ক সূমহঃ

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


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

সার্ভার সফটওয়ার
১. একটা পিএইচপি-compitable ওয়েব সার্ভার যেমন: এপাচি তবে বর্তমানে nginx (উচ্চারন ইনজিন-এক্স) খুব জনপ্রিয়
২. পিএইচপি (ডাউনলোড)
৩. মাইসিক্যুয়েল ডেটাবেস (শুধু তখনই লাগবে যদি আপনার এপ্লিকেশনে ডেটাবেস এর কাজ থাকে)

ক্লাইন্ট সফটওয়ার
১. ওয়েব ব্রাউজার যেমন মজিলা ফায়ারফক্স (এটাতো সবার ইনস্টল দেয়াই আছে)
২. একটা টেক্সট এডিটর যেমন:নোটপ্যাড। আপনি পিএইচপি এর জন্য Specialized এডিটরও ব্যাবহার করতে পারেন। ফ্রি কিন্তু সবচেয়ে সমৃদ্ধ এমন একটি এডিটর (IDE) হচ্ছে নেটবিনস।

[অন্যান্য তথ্যাদি]
** সব পিএইচপি ফাইল .php দিয়ে শেষ হবে যেমন login.php, test.php, sign_up.php ইত্যাদি।

** সব প্লাটফর্মে সাপোর্ট আছে অর্থ্যাৎ ক্রস প্লাটফর্ম যেমন উইন্ডোজ, লিনাক্স (সব ইউনিক্স সদৃশ অপারেটিং সিস্টেমে চলবে)।

** জেন্ড কোম্পানী পিএইচপি ল্যাংগুয়েজটি ম্যানেজ করে। আসলে যারা ল্যাংগুয়েজটি তৈরী করেছে তারাই এই কোম্পানীটি প্রতিষ্ঠা করেছে।

** পিএইচপি তৈরী শুরু হয়েছিল ১৯৯৪ সালে এবং তখন নাম ছিল Personal Home Page (PHP), এরপর ১৯৯৮ সালে ভার্সন ৩ (Version 3) এসেছিল আর পিএইচপি ৫ ভার্সনটি এসেছে ২০০৪ সালে এবং বর্তমানে সর্বশেষ ভার্সনটি হচ্ছে (স্টাবল) ৫.৬.৫ (১ লা ফ্রেব্রয়ারী, ২০১৫)। বর্তমানে পিএইচপি পূর্নাঙ্গ অবজেক্ট অরিয়েন্টেড এবং পৃথিবীতে সর্বাধিক ব্যবহৃত ল্যাংগুয়েজ ওয়েব ডেভেলপমেন্টের জন্য, যদিও পিএইচপির আগে (ওয়েব ডেভেলপমেন্টের জন্য) আরো অনেক ল্যাংগুয়েজ এসেছিল।

** ব্লগ, ইকমার্স থেকে শুরু করে এন্টারপ্রাইজ লেভেলের যেকোন এপ্লিকেশন কিংবা ওয়েবসাইট পিএইচপি দিয়ে বানানো যায়।

পিএইচপি ভেরিয়েবল টিউটোরিয়াল (PHP Variable Tutorial)



    Twitter ShareFacebook ShareGoogle ShareLinkedin Share
ভেরিয়েবল হচ্ছে একটা পাত্রের মত(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.?>
এখানেও আউটপুট ১ আসবে।

পিএইচপি ইনস্টলেশন (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 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 এনাবল থাকতে হবে

পিএইচপি ডেটা টাইপ টিউটোরিয়াল (PHP Data Type Tutorial in Bangla)



প্রতিটি প্রোগ্রামিং ল্যাংগুয়েজে ডেটা টাইপ আছে। একটা ভেরিয়েবলে কি ধরনের ডেটা আছে সেটা চিনতে হয় যেমন $x = 9; অর্থ্যাৎ x এর মান এখন ৯ এবং ৯ একটি পূর্নসংখ্যা। মানটি পূর্নসংখ্যা না হয়ে দশমিকও হতে পারত যেমন ৯.৫৪ বা এরুপ কিছু অথবা একটি অক্ষরের সারিও হতে পারত যেমন $x = 'webcoachbd' ইত্যাদি। অর্থ্যাৎ চিনিয়ে দিতে হয় যে তোমার (ভেরিয়েবলের) মধ্যে যে ডেটা টুকু রাখলাম সেটা একটা পূর্নসংখ্যা বা স্ট্রিং বা দশমিক সংখ্যা (বা যতরকম ডেটা টাইপ আছে)। সুতরাং $x = 9 এর অর্থ হল $x এখন integer, $x = 'webcoachbd' এর অর্থ হল $x এখন স্ট্রিং, $x = 5.36 এর অর্থ হল $x এখন floating number ইত্যাদি।
পিএইচপিতে কয়েক ধরনের ডেটা টাইপ বা ধরন আছে। অর্থ্যাৎ পিএইচপি ভেরিয়েবল এ ধরনের বা টাইপের ডেটা নিতে পারে এবং যেকোন অপারেশন করতে পারে। মুলত পিএইচপির ডেটাকে ২ টি বিভাগে ভাগ করা হয়েছে

১. স্কেলার ডেটা টাইপ : এখানে ৪ ধরনের ডেটা টাইপ আছে
ক. boolean বা বুলিয়ান: এ ধরনের ডেটার শুধু ২টি মান থাকতে পারে TRUE অথবা FALSE, পিএইচপিতে অনেক ফাংশন আছে যেগুলি বুলিয়ান রিটার্ন করে। বুলিয়ান ডেটা সাধারনত if কন্ডিশনে ব্যবহার করা হয়। কোন একটা ভেরিয়েবলে বুলিয়ান ডেটা আছে কিনা সেটা দেখার জন্য is_bool() একটি ফাংশন আছে। যেমন
1.<?php
2.$x = TRUE;
3.$y = 9;
4.var_dump(is_bool($y));// output bool(false)
5.var_dump(is_bool($x));// output bool(true)
6.?>
দেখুন $y যখন চেক করেছি তখন is_bool() এর আউটপুট false এসেছে কেননা $y এর মান বুলিয়ান নয় বরং ৯ অর্থ্যাৎ পূর্নসংখ্যা বা integer. এভাবে যেকোন ভেরিয়েবল কিংবা ফাংশনের রিটার্ন মান চেক করতে পারেন।
খ. integer বা পূর্নসংখ্যা: পূর্নসংখ্যা তথা দশমিক ছাড়া সংখ্যা হচ্ছে এই ধরনের ডেটা যেমন ৯, ৮, -৬৫, -১ ইত্যাদি হচ্ছে integer ডেটা। is_int() ফাংশন দিয়ে যেকোন ভেরিয়েবলকে চেক করে দেখতে পারেন, যদি পূর্নসংখ্যা (integer) হয় তাহলে TRUE রিটার্ন করবে অন্যথায় FALSE. পূর্নসংখ্যা ধনাত্নক কিংবা ঋনাত্নক হতে পারে এমনকি দশভিত্তিক (decimal- 10 based) ছাড়াও হেক্সাডেসিমাল (১৬-ভিত্তিক), octal (৮-ভিত্তিক), দ্বিমিক (২-ভিত্তিক বা বাইনারি) সংখ্যাও integer হতে পারে। যেমন
1.<?php
2.$x = 1011100; //binary number 92
3.var_dump($x);
4.?>
আউটপুট
int(1011100)

গ. Float বা দশমিক সংখ্যা: দশমিক সংখ্যা যেমন ৫.২৩৬, ৫.২ ইত্যাদি হচ্ছে float number বা doubles বা real number

1.<?php
2.$x = 5.2054;
3.var_dump($x);
4.?>
আউটপুট
float(5.2054)
সূচকীয় ফরেমেটেও float number লেখা যায় যেমন $x = 2x6e5;

ঘ. String বা অক্ষরের সারি: যেকোন অক্ষর সিঙ্গেল কোট, ডাবল কোটেশন, heredoc এবং nowdoc সিনট্যাক্সের মধ্যে রাখলে সেটা স্ট্রিং যেমন
1.<?php
2.$x = 'webcoachbd';
3.$x = "webcoachbd";
4.$x = <<<HTML
5.<p>Webcoachbd is a bengali tutorial site</p>
6.HTML;
7.?>
অবশ্য সব অক্ষর (ক্যারেক্টার) এর সাপোর্ট নেই, সোজা কথা ইউনিকোড ক্যারেক্টার সাপোর্টেড নয়। পিএইচপি ৭ ভার্সন সামনে আসছে সেখানে ইউনিকোড ক্যারেক্টারও সাপোর্ট থাকবে।

২. Compound বা মিশ্র ডেটা টাইপ
ক. অ্যারে: পিএইচপি অ্যারে টিউটোরিয়াল (PHP Array )
খ. অবজেক্ট: অবজেক্ট এবং ক্লাস (Object and Class)

এছাড়া আরো দুটি বিশেষ ডেটা টাইপ আছে resource এবং NULL
resource সাধারনত বিভিন্ন ধরনের ডেটা হয়ে থাকে যেমন ডেটাবেসে অপারেশন করে যেসব ডেটা রিটার্ন করে সেগুলি resource ডেটা হিসেবে দেখে। আর NULL হল ফাকা ডেটা। কোন ভেরিয়েবল ডিক্লেয়ার করা হল কিন্তু কোন মান assign করা হলনা তাহলে সেই ভেরিয়েবলটির মান null হয়ে যায়।

টাইপ জাগলিং
যেকোন ল্যাংগুয়েজে যখন একটা ভেরিয়েবলে কিছু নিবেন তখন বলে দিতে হবে যে কোন ধরনের ডেটা এটা (টেকনিকালি এটাকে বলে টাইপ ডিক্লেয়ার করা বা explicit type definition)। শুধু পিএইচপিতে এ কাজটি করতে হয়না। পিএইচপি ইন্জিন ডেটা দেখে নিজে নিজেই বুঝে নেয় যে আপনি কি ধরনের ডেটা দিয়েছেন। এই অটোমেটিক টাইপ চিনে নেয়ার প্রক্রিয়ার নাম "টাইপ জাগলিং"। এটা পিএইচপির একটা শক্তিশালি বৈশিষ্ট্য।

টাইপ কাস্টিং
পিএইচপিতে টাইপ পরিবর্তন করা যায়। এক ডেটা টাইপ থেকে আরেক ডেটা টাইপে বদলে দেয়ার নাম টাইপ কাস্টিং। যে ডেটা টাইপে পরিবর্তন করতে চান সেটার সংকেতটি প্রথম বন্ধনির ভিতর দিয়ে এরপর ডেটা টুকু দিতে। সংকেতসমূহ
(int) পূর্নসংখ্যা করতে চাইলে
(bool) বুলিয়ান করতে চাইলে
(float) দশমিক/double/real সংখ্যা করতে চাইলে
(string) অক্ষরসারি করতে চাইলে
(array) অ্যারে বানাতে চাইলে
(object) অবজেক্ট এ রুপান্তর
(unset) এটা দিলে null হয়ে যাবে।
উদাহরন: যেমন $x = 9; আছে অর্থ্যাৎ এখন পূর্নসংখ্যা (integer) আছে আর আমি চাচ্ছি এটাকে স্ট্রিং বানাবো তখন এর টাইপ কাস্টিং করব এভাবে
1.<?php
2.$x = 9;
3.$x = (string) 9;
4.var_dump($x);
5.?>
আউটপুট
string(1) "9"
যে লাইনে (string) এটা দিয়ে টাইপ কাস্টিং করলাম সেই লাইনটি বাদ দিয়ে var_dump() করুন আউটপুট int(9) এটা দেখাবে।

তদ্রুপ
1.<?php
2.$x = '45';//now $x is string
3.$x = (int) $x;// type casting to integer
4.var_dump($x)//now output int(45)
5.$y = (array) $x;// now casting to array
6.?>

কেন টাইপ কাস্টিং জরুরি: পিএইচপি দিয়ে ডেটাবেস বা যেকোন ডেটা প্রসেসের সময় ডেটার টাইপ পরিবর্তন করার প্রয়োজন হতে পারে। উদাহরনস্বরুপ আপনার একটি ফর্মে হিডেন মান আছে, ঐ মানটি ধরুন একটা আইডি যেটা integer হিসেবে আপনার লাগবে ডেটাবেসে কোয়েরি করার সময়। এখন ফর্ম সাবমিট করলে মানটি যখন $_REQUEST['hidden_id'] এভাবে বা যেকোনভাবে পিএইচপি পেজে রিসিভ করবেন তখন এটা সাধারনত string হিসেবে আসে, কিন্তু এই স্ট্রিং দিয়ে কোয়েরি করলে ঝামেলা হবে কারন ডেটাবেসে id ফিল্ড রেখেছেন integer হিসাবে। এসব ঝামেলা এড়াতে আপনি যদি পিএইচপিতে মানটি ধরার সময় নিচের মত করে ধরেন তাহলে আপনি নিরাপদ হয়ে গেলেন।
1.<?php
2.$x = (int)$_REQUEST['hidden_id'];//cast to integer
3.?>
সুতরাং $x এর মান যদি কোনভাবে '9' এরুপ স্ট্রিং আসে তাহলে এটাকে কাস্টিং করে 9 তথা integer বানিয়ে নিবে।

পিএইচপি স্ট্রিং টিউটোরিয়াল (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 Tutorial in Bangla)



যেকোন প্রোগামিং ল্যাংগুয়েজে অপারেটর আছে। সবসময় ব্যবহৃত হয় এরুপ অপারেটরগুলি শেখা খুব গুরত্বপূর্ন। আর সবগুলি শিখতে হবে যদি কোন মার্কেটপ্লেসে (ওডেস্ক ডট কম, ফ্রিল্যান্সার ডট কম ইত্যাদি) বা জেন্ড ইত্যাদির পরীক্ষা দেন তাহলে যেসব অপারেটর সাধারনত ব্যবহার হয়না সেগুলির উপর প্রচুর প্রশ্ন থাকে। যাইহোক আমরা সব দেখাচ্ছি
অপারেটর: যেমন $x + $y; এখানে $x, $y এগুলি হচ্ছে অপারেন্ড (Operand) আর প্লাস (+) চিহ্ন হচ্ছে অপারেটর। আরও অনেক অপারেটর আছে যেমন +, -, *, /, !, ++, --, ||, and ইত্যাদি।
অনেক অপারেটর আছে যারা শুধু একটি অপারেন্ড এর উপর কাজ করে যেমন ++ (increment অপরেটর) বা ! (not অপারেটর) ইত্যাদি, এসব অপারেটরকে ইউনারি (Unary) অপারেটর বলে।
অনেক অপারেটর আছে যারা দুটি অপারেন্ড এর উপর কাজ করে যেমন + (Addition বা plus অপরেটর) বা - (Subtraction বা minus অপারেটর) ইত্যাদি, এসব অপারেটরকে বাইনারি (Binary) অপারেটর বলে। বেশির ভাগ অপারেটর বাইনারি অপারেটর।
অনেক অপারেটর আছে যারা তিনটি অপারেন্ড এর উপর কাজ করে যেমন ? :, এসব অপারেটরকে টেনারি (Tenary) অপারেটর বলে। টেনারি অপারেটর একটাই।


অপারেটরের কিছু শ্রেনীবিভাগ আছে যেমন
Arithmetic বা গানিতিক অপারেটর
ছোটবেলায় অংক করছিলেন যে মনে আছে? ঐসব অংকে যোগ, বিয়োগ, গুন, ভাগ এর জন্য +, -, x চিহ্নগুলি যেভাবে ব্যবহার করেছিলেন ঠিক তেমনি।

উদাহরন অপারেটরের নাম ব্যাখ্যা
-$x Negation $x এর বিপরীত
$x + $y Addition বা যোগ $x এবং $y এর যোগ বরতে ব্যবহৃত হয়েছে
$x - $y Subtraction বা বিয়োগ $x থেকে $y বিয়োগ করতে ব্যবহার হয়েছে
$x * $y Multiplication বা গুন $x এবং $y এর গুনন করা হয়েছে
$x / $y Division বা ভাগ $x কে $y দিয়ে ভাগ করা হয়েছে
$x % $y Modulus (মডুলাস) $x কে $y দিয়ে ভাগ করার পর অবশিষ্টাংশ
$x ** $y Exponentiation বা সূচকীয় পিএইচপি ৫.৬ ভার্সনে এসেছে এখনো ব্যবহার ব্যাপকভাবে শুরু হয়নি।
01.<?php
02.$x = 15;$y = 3;
03.echo 'Negation of $x : '. (-$x).'<br/>';
04.echo 'Addition of $x and $y : '. ($x + $y).'<br/>';
05.echo 'Subtraction of $y from $x : '. ($x - $y).'<br/>';
06.echo 'Multiplication of $x and $y : '. ($x * $y).'<br/>';
07.echo 'Division of $x by $y : '. ($x/$y).'<br/>';
08.echo 'Remainder of $x divided by $y : '. ($x % $y);
09.?>
আউটপুট
Negation of $x : -15
Addition of $x and $y : 18
Subtraction of $y from $x : 12
Multiplication of $x and $y : 45
Division of $x by $y : 5
Remainder of $x divided by $y : 0

** মডুলাস করার আগে অপারেন্ড দুটিকে পূর্নসংখ্যা বানিয়ে নেয় (যদি দশমিক থাকে) এরপর মডুলাস করে। আর ভাজ্যের (যেটাকে ভাগ করা হচ্ছে) চিহ্নই হবে ফলাফলের চিহ্ন। যেমন যদি $x = -15; হত এবং $y = 4; হত তাহলে ($x%$y এর) ফলাফল হত -4.

** প্রথম বন্ধনী দেয়াতে আগে অপারেশন হয়েছে এরপর স্টিংয়ের সাথে কনক্যাট (concat) হয়েছে। বন্ধনী উঠিয়ে দিলে ভুল ফল আসবে সবগুলিতে।

** $x = 15 এর অর্থ 15, সুতরাং $y = ($x = 15) + 3; হলে $y এর মান বা আউটপুট হবে ১৮ কারন এখন $y = 15+3 হয়ে গেছে।

Assignment বা আরোপন অপারেটর:
এসাইনমেন্ট অপারেটর মুলত সমান (=) চিহ্ন। এর সাথে যুক্ত হয়ে আরো কিছু এসাইনমেন্ট অপারেটর আছে সেগুলিকে বলে Combined Operator বা সংযুক্ত অপারেটর। নিচের সবগুলির উদাহরন দেয়া হল
01.<?php
02.// 15 assigned to $x (assignment operator)
03.$x = 15;
04. 
05.// combined operator +=
06.$x += 15; /* this means $x = $x + 15*/
07.echo $x .'<br/>';
08. 
09.//combined operator .=
10.$y = 'Webcoachbd';
11.$y .= ' Tutorials'; /* this means $y = $y . ' Tutorials'*/
12.echo $y;
13.?>
আউটপুট
30
Webcoachbd Tutorials
$x = 15 এটার অর্থ $x এর মান ১৫ এসাইন তথা আরোপ করা হল। অথবা এভাবে বলতে পারেন যে বামদিকের অপারেন্ডে ডানদিকের এক্সপেশন থেকে মান নিয়ে সেটা এসাইন করা হয়েছে।
এবার $x += 15; দেয়াতে সেটার আউটপুট দেখুন ৩০ এসেছে এবং $y .= ' Tutorials'; দেয়াতে আউটপুট Webcoachbd Tutorials এভাবে এসেছে। এখানে += এবং .= অপারেটর দেয়াতে মুল ভেরিয়েবলটির মান পরেরটিতে ঢুকে গেছে। এটাকে টেকনিকাল ভাষায় বলা হয় assignment by value (মান দিয়ে আরোপন)

assignment by reference বা রেফারেন্স দিয়ে আরোপন
পিএইচপিতে & চিহ্ন ব্যবহার করে দুটি ভেরিয়েবলে একই মান এসাইন করা যায়। যেমন
1.<?php
2.// assignment by reference
3.$x = 15;
4.$y = &$x;
5. 
6.echo $x.'<br/>';
7.echo $y;
8.?>
আউটপুট
15
15
assignment by value কারনে মুল ভেরিয়েবলের মান পরেরটিতে কপি হয়ে যায় কিন্তু assignment by reference করলে সেটা হয়না। এখন $x এর মান পরিবর্তন করলে $y এর মানও পরিবর্তন হয়ে যাবে। যেমন
01.<?php
02.// assignment by reference
03.$x = 15;
04.$y = &$x;
05. 
06.$x = 5;
07.echo $x.'<br/>';
08.echo $y;
09.?>
আউটপুট
5
5
দেখুন $y পরিবর্তন হয়ে গেছে কারন $y হচ্ছে $x এর রেফারেন্স।

পিএইচপি কন্ডিশনাল স্টেটমেন্ট (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 Tutorial in Bangla)




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

সংকেত

1.for (expr1; expr2; expr3)
2.{
3.code to be executed;
4.}
for লুপ স্টেটমেন্ট ব্রাকেটের ভিতর ৩টি 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.echo "The number is " . $i . "<br />";
4.}
5.?>
আউটপুট
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
যেকোন expression (expr1, expr2 অথবা expr3) ফাকা বা একটিতে একাধিক expression থাকতে পারে, যেগুলো কমা দ্বারা বিভক্ত হবে। যদি expr2 ফাকা থাকে তাহলে এর default মান true নিয়ে নেয় এবং তখন লুপটি চলতেই থাকবে, কখনও থামবেনা। তবে break স্টেটমেন্ট ব্যবহার করে থামানো যাবে। যেমন আাগের লুপটিই চাইলে নিচের মত করে করতে পারেন
1.<?php
2.for ($i=1; ; $i++){
3.if($i > 5){
4.break;
5.}
6.echo "The number is " . $i . "<br />";
7.}
8.?>

** পিএইচপিতে ফর লুপে কোলন চিহ্ন সমর্থন করে। এটা অনেক উপকারী বিশেষ করে যখন লুপের ভিতর এইচটিএমএল লিখতে হয়। যেমন
1.<?php for ($i=1; $i<=5; $i++):?>
2.<p>The number is <?php echo $i;?></p>;
3.<?php endfor; ?>
দেখুন কিভাবে কোলন চিহ্ন ব্যবহার হয়েছে দ্বিতীয় বন্ধনীর বদলে। দ্বিতীয় বন্ধনী দিলে যেমন সেটা শেষ করতে হয় "}" চিহ্ন দিয়ে, কোলন দিলে শেষ করতে হয় endfor; এভাবে।

ফর লুপ ব্যবহার করে তারার পিরামিড
পদ্ধতি এক
01.<center>
02.<?php
03.function pyramid($hm){
04.for($i=1; $i<=$hm; $i++){
05.for($j=1; $j<=$i; $j++){
06.echo '*';
07.}
08.echo '<br/>';
09.}
10.}
11.pyramid(5);
12.?>
13.</center>
ব্যাখ্যা: $hm প্যারামিটারে যে সংখ্যা দিবেন সেই সংখ্যক তারকা শেষ সারিতে দেখাবে। ১মলুপে (অর্থ্যাৎ $i এর লুপে) $i এখানে ১ থেকে শুরু হয়েছে এবং প্রতিবার লুপিং এর সময় ১ করে বাড়বে কারন ৩য় এক্সপ্রেশন $i++ আছে। আর লুপটি চলবে $hm বার কারন ২য় এক্সপ্রেশনে $i <= $hm দেয়া আছে। এবার ২য় লুপে ($j এর লুপটিতে) $j এর মান ১ থেকে শুরু হবে এবং $j<=$i এটার জায়গায় প্রতিবার লুপের সময় $i এর মান ওখানে ১ করে বাড়বে। সুতরাং এভাবে ১ম বার একটি * echo হবে এরপর একটা br ট্যাগ এরপরের বার ২য় ফর লুপে $i এর মান ২ হয়ে যাবে এবং দুইবার * echo হবে, ৩য় বার আবার ২য় লুপে ($j এর লুপে) $i এর মান ৩ হবে এবং ৩টি * echo হবে এবং একটি br ট্যাগ। এভাবে pyramid() এর ভিতর প্যারামিটার যে সংখ্যা দিবেন সেই সংখ্যক বার লুপ চলবে এবং * echo হতে থাকবে।

পদ্ধতি দুই

01.<?php
02.for($i=1; $i<=5; $i++){
03.for($j=5; $j>$i; $j--){
04.echo '&nbsp;';
05.}
06.for($j=$i; $j>0; $j--){
07.echo '*';
08.}
09.echo '<br/>';
10.}
11.?>
আরও অনেকভাবে করা যায়। আমরা দুটি দেখালাম।