নবীন

পিএইচপি বেসিকস ৮: অ্যারে

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

<?php
//filename: /home/hasin/www/array1.php
$MyArray = array(11,12,13,14,15);
print_r($MyArray);
?>

উপরের কোডটুকু রান করলে আমরা দেখব স্ক্রিনে পাঁচটি এলিমেন্ট সহ এই অ্যারে টি প্রিন্ট হয়েছে। লাইন # ৩ এ array() ফাংশন দি্যে আমরা $MyArray নামে একটি অ্যারে তৈরী করেছি যাতে আমরা 11,12,13,14 এবং 15 এই পাঁচটি এলিমেন্ট রেখেছি। এখন অ্যারে নিয়ে আরো কথা বলার আগে দুটো জিনিস সম্বন্ধে ধারনা পরিষ্কার করা দরকার। পিএইচপিতে অন্য প্রোগ্রামিং ল্যাংগুয়েজের মত অ্যারের সাইজ (অর্থাৎ অ্যারে তে সর্বোচ্চ কয়টি এলিমেন্ট থাকবে) তা বলতে হয় না। এটা ডাইনামিক ভাবে বাড়তে থাকে। আপনি যত ইচ্ছা এলিমেন্ট রাখতে পারবেন। এলিমেন্টগুলোর পজিশনিং শুরু হয় 0 থেকে। আমাদের এই অ্যারেতে প্রথম এলিমেন্ট 11 এর পজিশন অ্যারের একদম শুরুতে, অর্থাৎ 0 তে, এবং এর পরের এলিমেন্ট 12 এর পজিশন 1 এ। এই পজিশনকে প্রোগ্রামিং এর ভাষায় বলে অফসেট (Offset), অর্থাৎ 11 এর অফসেট 0 এবং 12 এর অফসেট 1। আমরা যেকোন সময় অ্যারের যেকোন অফসেটে যেকোন এলিমেন্টের মান পরিবর্তন করতে পারি। নিচের কোডটি দেখুন কিভাবে যেকোন অফসেটে কোন এলিমেন্টের মান পরিবর্তন করা যায়

<?php
//filename: /home/hasin/www/array2.php
$MyArray = array(11,12,13,14,15);
for($i=0;$i<5;$i++)
$MyArray[$i] = $MyArray[$i]*$MyArray[$i];
print_r($MyArray);
?>

অ্যারের যেকোন অফসেটের এলিমেন্ট এর মান জানা বা পরিবর্তন করার জন্য অ্যারের সাথে থার্ড ব্র‍্যাকেটের মাঝে সেই অফসেট বলে দিতে হয়। যেমন উপরের উদাহরনে আমরা ০ থেকে ৪ পর্যন্ত অফসেটের এলিমেন্টগুলোর মান তাদের বর্তমান মান দিয়ে গুন করে পরিবর্তন করেছি (লাইন # ৪) ।

পিএইচপিতে অ্যারে নিয়ে কাজ করার সময় আরো একটা জিনিস মনে রাখা দরকার। অ্যারের অফসেটগুলো যদি নাম্বার হয় (যেমন 0,1,2,3,4,……n) তাহলে আমরা সেই অ্যারেকে বলব ইনডেক্সড অ্যারে। আর যদি অফসেট হয় স্ট্রিং (তাও হয় নাকি? হ্যাঁ হয়, নিচের উদাহরনটি দেখুন) তাহলে সেই অ্যারেকে বলব অ্যাসোসিয়েটেড অ্যারে। চলুন অ্যাসোসিয়েটেড অ্যারের একটা উদাহরন দেখা যাক

<?php
//filename: /home/hasin/www/array3.php
$MyArray = array("blue"=>"berry","red"=>"tomato","green"=>"pear","yellow"=>"banana");
print_r($MyArray);
?>

অ্যাসোসিয়েটেড অ্যারের মাঝে লুপ চালানোর সময় for বা while বা do-while ব্যবহার করা যায় না। এক্ষেত্রে foreach ব্যবহার করতে হয়। চলুন একটা উদাহরন দেখি কিভাবে আমরা উপরের অ্যাসোসিয়েটেড অ্যারেতে লুপ চালাতে পারি।

<?php
//filename: /home/hasin/www/array4.php
$MyArray = array("blue"=>"berry","red"=>"tomato","green"=>"pear","yellow"=>"banana");
foreach($MyArray as $key=>$value)
{
   echo "{$value} is {$key} 
"; } ?>

এই কোডটুকু রান করলে আমরা দেখবে নিচের মত আউটপুট এসেছে

berry is blue
tomato is red
pear is green
banana is yellow

foreach লুপে $key তে অ্যারের এলিমেন্টের অফসেট এবং $value তে এলিমেন্টের মান স্টোর হয়।

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

  • Share/Bookmark

ইনস্টলেশন শর্টকার্ট ও শুরু (উইন্ডোজ)

উইন্ডোজ পরিবেশে ম্যানুয়ালি সবকিছু সেটাপ শিখতে গিয়ে যেসকল নবীন ডেভেলপাররা হোচট খেয়েছেন তাদের জন্য খুব আনন্দের খবর হচ্ছে কোন রকম ঝামেলা ছাড়াই উইন্ডোজ পরিবেশে ওয়েব ডেভেলপ করার পরিবেশ তৈরি করা সম্ভব। এর জন্য খুব জনপ্রিয় দু’টি প্যাকেজ (XAMPP, WAMP) আছে যাতে Apache, PHP, MySQL সহ আরো বেশ কিছু প্রয়োজনীয় টুল একত্রে কনফিগার করে দেয়া থাকে। এদের যেকোন একটি সংগ্রহ করে সাধারণ যেকোন সফটওয়্যারের মত সেটাপ করে নিলেই ওয়েব ডেভেলপ করার প্রয়োজনীয় পরিবেশ তৈরি হয়ে যাবে। XAMPP এবং WAMP নামের এই প্যাকেগুলো থেকে আমরা অধিক জনপ্রিয় XAMPP-কে বেছে নিচ্ছি। চলুন খুব সংক্ষেপে এটি সংগ্রহ, ইনস্টলেশন ও সাধারণ ব্যবহারবিধি জেনে নেই-

১) প্রথমেই আপনাকে XAMPP প্যাকেজটি ডাউনলোড করে নিতে হবে। যারা গুগল ব্যবহার জানেন তারা এতক্ষনে নিশ্চয় DOWNLOAD XAMPP লিখে সার্চ দিয়ে যায়গামত পৌঁছে গিয়েছেন। যারা এখনো পাচ্ছেন না তারা apachefriends.org খুলে Windows প্যাকেজটি খুঁজে বের করে ডাউনলোড দিন।
২) ডাউনলোড হয়ে যাওয়ার পর অন্য যেকোন সফটওয়্যারের মত করে সেটাপ শুরু করুন। এক্ষেত্রে Destination Folder এ C:/ বা অন্য যেকোন ড্রাইন নির্বাচন করতে পারেন।
Read the rest of this entry »

  • Share/Bookmark

বর্ণগুচ্ছের সহজ পাঠ- ডিক্লেয়ারেশন

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

  • সিঙ্গেল কোট (single quote ) ব্যাবহার করে,
  • ডাবল কোট (double quote ) ব্যাবহার করে,
  • হেয়ারডক (heredoc) ব্যাবহার করে।

সিঙ্গেল কোট (single quote ) এর ব্যাবহারঃ
স্ট্রিং-কে সিঙ্গেল কোট(‘’)-এর মধ্যে লেখা যায়। কে যেন মনে হয় বলেছিলো–

An example is worth a thousand words :D

একটা উদাহরণ দিলেই পরিষ্কার হবে-

<?php
   //filename: /home/samiul/www/string1.php
   echo 'php book project';
?>

Read the rest of this entry »

  • Share/Bookmark

পিএইচপি বেসিকস ৭: লুপ, for দিয়ে

আমাদের আগের আর্টিকেলে আমরা বলেছিলাম যে পিএইচপিতে সাধারনভাবে চার রকমের লুপ আছে এবং আমরা while ও do-while নিয়ে আলোচনা করেছিলাম। এই আর্টিকেলে আমরা দেখব কিভাবে for দিয়ে লুপ তৈরী করা যায়।

<?php
//filename: /home/hasin/www/loop3.php
for($i=0;$i<10;$i++)
{
    echo $i."
"; if ($i>7) break; } ?>

এই হল ফর লুপের উদাহরন। চলুন একটু কোড বোঝা যাক

লাইন # ৩ এ আমরা আমাদের for লুপ শুরু করেছি। এখানে একটা জিনিস খেয়াল করুন, for লুপের কন্ডিশনে তিনটি অংশ আছে। একটা হল

$i=0; এটা দিয়ে আমরা একটি ভ্যারিয়েবলের মান ঠিক করে দিয়েছি
$i<10; এটা দিয়ে আমরা কন্ডিশন ঠিক করেছি, যে যতক্ষন $i এর মান ১০ এর নিচে থাকবে ততক্ষন পর্যন্ত আমাদের for লুপ কাজ করবে।
$i++ এটা দিয়ে আমরা ভ্যারিয়েবলের মান এক এক করে বাড়িয়েছি

লাইন # ৪ এ আমরা for লুপের স্কোপ শুরু করেছি সেকেন্ড ব্র‍্যাকেট দিয়ে যা শেষ হয়েছে লাইন # ৭ এ

লাইন # ৫ এ আমরা $i এর মান প্রিন্ট করেছি

লাইন # ৬ এ আমরা চেক করেছি যে $i এর মান ৭ এর বেশি কিনা। বেশী হলে আমরা break লিখে পিএইচপিকে বলছি for লুপ থেকে বের হয়ে যেতে।

চলুন একটা মজার কোড লেখা যাক। আমরা নিচের কোড টুকু দিয়ে দেখব যে একটি সংখ্যা মৌলিক সংখ্যা (prime number) কিনা . তার আগে জেনে নেই যে প্রাইম নাম্বার বের করার জন্য অনেক জটিল জটিল অ্যালগরিদম রয়েছে, কিন্তু সবচেয়ে সহজটি হল যে সংখ্যা আমরা চেক করব তার স্কয়ার রুট বের করব। এবার ২ থেকে স্কয়ার রুট পর্যন্ত একটি লুপ চালিয়ে আমরা দেখব যে আমাদের সংখ্যাটি এই সংখ্যাগুলোর কোনোটা দিয়ে ভাগ যায় কিনা (অর্থাৎ ভাগফলের অবশিষ্ট ০ কিনা) – যদি ০ হয়, তাহলে এটা প্রাইম নাম্বার নয়। চলুন দেখা যাক কোডে কিভাবে এটা লেখা যায়

<?php
//filename: /home/hasin/www/primenumber.php
$number = 29;
$isPrime = true;
$sqrt = floor(sqrt($number));
for ($i=2;$i<=$sqrt;$i++)
{
    if($number % $i == 0)
    {
        $isPrime = false;
        break;
    }
}

if ($isPrime)
echo "{$number} is a prime number";
else
echo "{$number} is not a prime number";
?>

কিভাবে কি হল বোঝার জন্য চলুন একটু কোড দেখি।

লাইন # ৪ এ আমরা একটি ভ্যারিয়েবল $isPrime এর মান true রেখেছি। কারন লুপ চলার সময় কোন সংখ্যা প্রাইম নাম্বার নয় এ ব্যপারে নিশ্চিত হলে আমরা এই ভ্যারিয়েবলের মান false করে দিব।

লাইন # ৫ এ আমরা সংখ্যাটির স্কয়ার রুট বের করেছি sqrt ফাংশন দিয়ে। এটা একটা পিএইচপির একটা বিল্ট ইন ম্যাথ ফাংশন। এরপরে আমরা একই লাইনে এই স্কয়ার রুটের দশমিক অংশ বাদ দিয়েছি floor ফাংশন দিয়ে। এই ফাংশন গুলো সম্পর্কে বিস্তারিত জানার জন্য আমাদের ম্যাথ সংক্রান্ত আর্টিকেলটি পড়ুন

বাকি অংশটুকুতে আর নতুন কিছু নেই। আমাদের আগের আর্টিকেল গুলো পড়ে থাকলে আপনি অনশ্যই বুঝতে পারবেন বাকি লাইন গুলোতে আমরা কি করেছি।

  • Share/Bookmark

পিএইচপি বেসিকস ৬ – লুপ, while এবং do-while দিয়ে

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

<?php
//filename: /home/hasin/www/loop1.php
$i=0;
while ($i<10)
{
    echo $i."<br/>";
    if($i>7) break;
    $i = $i+1;
}
?>

আমরা যদি কোড দেখি, তাহলে দেখব যে এখানে while ব্লক শুরু হয়েছে লাইন নম্বর ৪ থেকে। while ব্লক কতক্ষন চলবে সেই কন্ডিশন বা এক্সপ্রেশন আমরা দিয়ে দিয়েছি ফার্স্ট ব্র‍্যাকেটের মাঝে, যে যতক্ষন $i এর মান ১০ এর নিচে থাকবে ততক্ষন আমাদের while লুপ রান করবে।

লাইন # ৫ এ আমরা লুপের স্কোপ শুরু করেছি সেকেন্ড ব্র‍্যাকেট দিয়ে যা শেষ হয়েছে লাইন # ৯ এ

লাইন # ৬ এ আমরা $i এর মান প্রিন্ট করেছি

লাইন # ৭ এ আমরা চেক করেছি যে $i এর মান ৭ এর উপরে গেছে কিনা, যদি গিয়ে থাকে তাহলে আমরা পিএইচপি কে বলছি যে লুপ থেকে বের হয়ে যাও। লুপের কোন অংশে break রান করলে পিএইচপি সেই লুপ থেকে বের হয়ে যায়।

লাইন # ৮ এ আমরা $i এর মান ১ করে বাড়িয়েছি। এই লাইন টিকে নিচের মত করেও লেখা যেত

$i+=1;

অথবা

$i++;

আমরা যদি কোডটুকু রান করাই তাহলে আমরা স্ক্রিনে ০ থেকে ৮ পর্যন্ত লেখা দেখতে পাব।

একই ভাবে আমরা do-while লুপ লিখতে পারি, যেমন নিচের উদাহরনটি দেখুন

<?php
//filename: /home/hasin/www/loop2.php
$i=0;
do{
    echo $i."<br />";
    if ($i > 7) break;
    $i++;
} while($i < 10);
?>

এখানে লুপ শুরু করতে হয় do দিয়ে এবং শেষ করতে হয় while দিয়ে, আর কন্ডিশনটি থাকে while এর সাথেই। বাকি সব তো একই রকম।

  • Share/Bookmark

পিএইচপির ম্যাথমেটিক্যাল ফাংশন্স, পর্ব – ২ : সাধারণ ত্রিকোণমিতিক সমস্যার সমাধান

এসএসসি তে ত্রিকোণমিতির বেসিকস বুঝতে বুঝতেই কখন যেন সময় গড়িয়ে গেল।এইচএসসি তে এসে বুঝলাম ত্রিকোণমিতির ঝাল কেমন। সাইন, কোসাইন আর ট্যাঞ্জেন্টের ধারণা মনে রাখাটাই বড় ধরনের কৃতীত্ব মনে হত তখন। কোনটা লম্ব ভাগ অতিভুজ আর কোনটা অতিভুজ ভাগ ভূমি – এই সংজ্ঞাগুলো মনে রাখতে আয়ত্বও করেছিলাম বেশকিছু ছন্দ :P sin30, cos90 ইত্যাদির মানতো কখনই মনে রাখতে পারতাম না। ভাগ্যিস হাতের কাছে ক্যালকুলেটর নামক যন্ত্রখানি সর্বদাই রাখা পড়ত :)

পিএইচপির ম্যাথ ফাংশন্স সিরিজের দ্বিতীয় পর্বে তাই আমরা ত্রিকোণমিতি সম্পর্কিত ফাংশন্সগুলোর দিকে নজর দিতে চাই । পিএইচপির অতি প্রচলিত ৪৮টি ম্যাথ ফাংশনের মধ্যে ১৫টিই ত্রিকোণমিতি সম্পর্কিত । এগুলো হল – acos(), acosh(), asin(), asinh(), atan2(), atan(), atanh(), cos(), cosh(), hypot(), sin(), sinh(), tan(), rad2deg(), tanh() :) এই পর্বটিতে আমরা সাধারণ ত্রিকোণমিতিক ফাংশনগুলোর ব্যবহারিক প্রয়োগ দেখব। অর্থাৎ sin(), cos(), tan() এবং hypot() :D

hypot():
চমৎকার এই ফাংশনটির কথা অনেকেরই অজানা। এটির কাজ সমকোনী ত্রিভূজের অতিভুজ পরিমাপ করা। কিভাবে? নিজেই ব্যবহার করে দেখে নিন:

<?php
// filename: /home/masnun/phpbook/math-2/hypot.php

var_dump( hypot(3,4) ); // Outputs: float(5)
?>

<?php
var_dump( hypot(12,5) ); // Outputs: float(13)
?>

আমরা সমকোনী ত্রিভূজের দুই বাহুর পরিমাপ প্যরামিটার হিসেবে দিলেই এই ফাংশনটি জানিয়ে দেবে অতিভুজের হিসাব। আজ যদি পীথাগোরাস বেচে থাকতেন তবে তিনিও নির্ঘাত পিএইচপি শিখতে চাইতেন অতিভুজ সংক্রান্ত সমস্যাগুলো দ্রুত সমাধান করতে :D কি, একটু বেশিই বলে ফেললাম নাকি ? ;-)

sin():
নাম থেকেই যে ফাংশনের কাজ সম্পর্কে ধারণা করে ফেলেছেন তাতো বুঝতেই পারছি। হ্যা, প্রদত্ত কোণের সাইন অনুপাত নির্ণয় করাই এই ফাংশনের একমাত্র কাজ :)

<?php
// filename: /home/masnun/phpbook/math-2/sin.php

var_dump( sin(90) ); // Outputs: float(0.893996663601)
?>

<?php
var_dump( sin(0) ); // Outputs: float(0)
?>

জ্বি, sin90 এর মান পুরোপুরি ১ নয় :)

cos():
সাইনের পরেই আমরা চলে এলাম কোসাইনের জগতে। কোন কোণের পরিমাপ থেকে তার কোসাইন অনুপাত করতে আমাদের এই ফাংশনটির শরণাপন্ন হতে হয়।

<?php
// filename: /home/masnun/phpbook/math-2/cos.php

var_dump( cos(90) ); // Outputs: float(-0.448073616129)
?>

<?php
var_dump( cos(0) ); // Outputs: float(1)
?>

tan():
সাইন অনুপাতকে কোসাইনের অনুপাত দিয়ে ভাগ করলেই যে ট্যাঞ্জেন্ট অনুপাত পাওয়া যাবে তা আমরা কম বেশি সবাই জানি। কিন্তু, কি দরকার অযথা সময় নষ্ট করার? এই ফাংশনটি থেকে আমরা একবারেই পেয়ে যাব কাংখিত ফলাফল ।

<?php
// filename: /home/masnun/phpbook/math-2/tan.php

var_dump( tan(45) ); // Outputs: float(1.61977519054)
?>

<?php
var_dump( tan(0) ); // Outputs: float(0)
?>

এই লেখাটিতে ব্যবহৃত উদাহরন সমূহ ডাউনলোড করে নিন এখান থেকে — http://bangla-phpbook.googlecode.com/files/math-2.zip

  • Share/Bookmark

পিএইচপির ম্যাথেমেটিকাল ফাংশন্স : পর্ব – ১

ম্যাথ বা গনিতের কথা ভাবলেই আমার মনে পড়ে যায় রাশভারী চেহারার কোন পন্ডিতের কথা। মাঝে মাঝে ভাবতাম যে লোকটা গনিতের সূত্রপাত করেছেন তাকে যদি একবার আমার সামনে পেতাম তাহলে তাকে হাতে কলমে বুঝিয়ে দিতাম গনিত কষার কত মজা :(

কিন্তু পিএইচপি শেখার পর থেকে মনে হয় ম্যাথ বোধহ্য় অতটা খারাপ কিছু না :) পিএইচপি তে আমি পেয়েছি অসাধারন কিছু ম্যাথমেটিকাল ফাংশন্স যেগুলো দিয়ে প্রায় সব ধরনের ম্যাথমেটিকাল প্রবলেম এর সমাধান করা সম্ভব খুব সহজেই :D

আসুন তবে দেখা যাক পিএইচপির গনিতের দৌড় কতদূর :) পিএইচপিতে প্রায় ৫০ টি ম্যাথ ফাংশন্স আছে যেগুলো আমরা কয়েক পর্বে দেখব । প্রথম পর্বে আমরা দেখব abs(), ceil(), floor(), is_finite() এবং is_infinite() – এই ৫ টি ফাংশন্স । তাহলে চলুন শুরু করা যাক।

abs():
যে কোন সংখ্যার ধনাত্নক মান নির্নয় করতে আমরা এই ফাংশনটি ব্যবহার করব। যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-abs.php
$number1 = 11;
echo abs($number1); // outputs: 11
?>

<?php
$number2 = -11;
echo abs($number2); // outputs: 11
?>

ceil():
ভগ্নাংশের মান বৃদ্ধি করে পরবর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-ceil.php
$number1 = 3.4;
echo ceil($number1); // Outputs: 4
?>

<?php
$number2 = -3.4;
echo ceil($number2); // Outputs: -3
?>

লক্ষ্য করুন, ঋনাত্নক সংখ্যার ক্ষেত্রে -৩, -৩.৪ অপেক্ষা বৃহত্তর :)

floor():
এটি ঠিক ceil() এর উল্টোটা করে। অর্থাৎ ভগ্নাংশের মান হ্রাস করে পূর্ববর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-floor.php
$number1 = 3.4;
echo floor($number1); // Outputs: 3
?>

<?php
$number2 = -3.4;
echo floor($number2); // Outputs: -4
?>

is_finite():
এই ফাংশনটির রিটার্ন ভ্যালু একটি Boolean value । অর্থাৎ যদি প্রদত্ত সংখ্যাটি সসীম হয় তবে এটি True নচেৎ False রিটার্ন করে । সহজভাবে ব্যখ্যা করার জন্য এখানে আমি “সসীম” শব্দটি ব্যবহার করলাম। মূলত, সংখ্যাটি “float” ডাটা টাইপের সীমার ভেতরে আছে কিনা সেটা যাচাই করাই এই ফাংশনটির কাজ । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-is_finite.php
$number1 = 30003;
var_dump( is_finite($number1) ); // Outputs: bool(true)
?>

<?php
$number2 = log(0);
var_dump( is_finite($number2) ); // Outputs: bool(false)
?>

is_infinite():
আগের ফাংশনটির ঠিক বিপরীত এই ফাংশনটি। এটি নির্দেশ করে প্রদত্ত সংখ্যাটি অসীম কিনা । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-is_infinite.php
$number1 = 30003;
var_dump( is_infinite($number1) ); // Outputs: bool(false)
?>

<?php
$number2 = log(0);
var_dump( is_infinite($number2) ); // Outputs: bool(true)
?>

বিদ্রঃ উপরের দুটি ফাংশনের ব্যবহার দেখাতে গিয়ে আমি log(0) ব্যবহার করেছি । log(0) এর মান অসীম বলে বিবেচিত হ্য় । এটিও পিএইচপির ম্যাথ ফাংশনগুলির মধ্যে গুরুত্বপূর্ন একটি । আমরা পরবর্তী কোন পর্বে এটির ব্যবহার দেখে নিব ।

এই লেখাটিতে ব্যবহৃত পিএইচপি ফাইলগুলো ডাউনলোড করে নিনঃ http://bangla-phpbook.googlecode.com/files/phpbook-math-1.zip

  • Share/Bookmark

পিএইচপি বেসিকস ৫ – লজিক, switch-case দিয়ে

এর আগের পর্বে আমরা দেখেছি কিভাবে if-elseif-else দিয়ে লজিকাল ব্লক লিখতে হয়। এই পর্বে চলুন দেখি স্যুইচ-কেস এর ব্যবহার। আমরা আগের জোড়-বেজোড় বের করার স্ক্রিপ্টটুকুই আবার নতুন করে switch-case দিয়ে লিখব।

<?php
//filename: /home/hasin/www/logic3.php
$number = 11;
switch ($number%2)
{
    case 0:
        echo "{$number} is even number";
        break;
    default:
        echo "{$number} is odd number";
}
?>

এই কোডটুকু রান করালে আমরা দেখব যে আউটপুট আসবে “11 is odd number” । কিভাবে কাজ করছে তা বোঝার জন্য চলুন কোডে একবার নজর দেই

লাইন # ৪ এ আমরা স্যুইচ কেস শুরু করেছি। ইফ-এলস ব্লকের মত এখানেও লজিকাল এক্সপ্রেশন বা কন্ডিশন রাখা হয়েছে ফার্স্ট ব্র‍্যাকেটের মধ্যে। আর স্যুইচ লেখার পরেই স্কোপ শুরু করতে হয় সেকেন্ড ব্র‍্যাকেট দিয়ে (লাইন # ৫) এবং স্কোপ শেষ করতে হয় আবার সেকেন্ড ব্র‍্যাকেট দিয়ে (লাইন # ১১)

স্যুইচ কেসে প্রতিটি কন্ডিশন চেক করতে হয় case লিখে, এবং কন্ডিশনের শেষে কোলন দিয়ে। লাইন # ৬ এ আমরা চেক করেছি যে ভাগফলের অবশিষ্টের মান ০ কিনা।

লাইন # ৭ এ আমরা আউটপুট প্রিন্ট করেছি

লাইন # ৮ এ আমরা পিএইচপি কে বলছি যে যদি এই কেস টি সঠিক হয়, তাহলে আর কিছু চেক করার দরকার নাই, স্যুইচ ব্লক থেকে বের হয়ে যাও। আমরা যদি প্রতিটি কেসে break না লিখি তাহলে পিএইচপি একটি কেস সঠিক হওয়ার পরেও পরবর্তী কেস চেক করবে। তা না করার জন্যই আমরা break লিখেছি।

if ব্লকে যেমন কোন কন্ডিশন না মিললে else ব্লক রান করে, switch-case এ default ঠিক একই কাজ করে। ডিফল্ট কেসে break লেখার কোন দরকার নেই।

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

যদি কোন বছর ৪০০ দিয়ে ভাগ করলে অবশিষ্ট ০ হয়, তাহলে লিপ ইয়ার
নয়ত যদি ১০০ দিয়ে ভাগ করলে অবশিষ্ট ০ হয়, তাহলে নন-লিপ-ইয়ার
নয়ত যদি ৪ দিয়ে ভাগ করলে অবশিষ্ট ০ হয়, তাহলে লিপ ইয়ার
নয়ত নন লিপ ইয়ার

তো চলুন, এবার আমরা পিএইচপিতে এটা লিখে ফেলি

<?php
//filename: /home/hasin/www/logic4.php
$year = 2004;
switch($year)
{
    case ($year % 400 == 0):
        echo "{$year} is a leap Year";
        break;
    case ($year % 100 == 0):
        echo "{$year} is not a leap Year";
        break;
    case ($year % 4 == 0):
        echo "{$year} is a leap Year";
        break;
    default:
        echo "{$year} is not a leap Year";
}
?>

একদম সহজ, তাই না? পরবর্তী আর্টিকেলে আমরা দেখব কিভাবে পিএইচপিতে লুপ ব্যবহার করতে হয়।

  • Share/Bookmark

বর্ণগুচ্ছের(String) সহজ পাঠ- শুরু থেকে শুরু

য়েবে এখন অনেক উপাদান যেমন ভিডিও , এনিমেশন, সাউন্ড, ছবি অনেক কিছুই পাওয়া যাচ্ছে, তারপরও ওয়েবের অনেকাংশ জুড়ে আছে টেক্সট-মানে অক্ষরের পর অক্ষর!

ই টেক্সট-কে ওয়েবে প্রকাশ করার জন্য পিএইচপি-তে যে ডাটাটাইপ ব্যাবহার করা হয় সেটি হলো স্ট্রিং।

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

স্ট্রিং কি?
প্রথমে জেনে নেই স্ট্রিং কি জিনিস, খায় না মাথায় দেয় :D
স্ট্রিং আসলে কতগুলো অক্ষরের সমাহার, অনেকগুলো বর্ণের সমষ্টি, সেজন্যই বলছি বর্ণগুচ্ছ :D
এই স্ট্রিং হতে পারে একটি বাক্য, নাম্বার , অথবা একটি শব্দ অথবা একটি মাত্র অক্ষর, একটিমাত্র নাম্বার, অথবা কোন ডেটও হতে পারে।
স্ট্রিং এর মধ্যে অক্ষর, নাম্বার, স্পেস, পাঙ্কচুয়েশন যে কোন কিছুই থাকতে পারে।
যেমন নিচের সবগুলোই স্ট্রিং -

  • ‘phpbook’
  • ‘December 4, 2009’
  • “I”
  • “5”
  • “Hi!”

Read the rest of this entry »

  • Share/Bookmark

পিএইচপি ডাটা টাইপ

ডাটা টাইপ সম্পর্কে বলতে গেলে আগে ভেরিয়েবল নিয়ে বলতে হয়। হাসিন ভাই ভেরিয়েবল নিয়ে বলেছেন। এখানে ডাটা টাইপ নিয়ে সংক্ষেপে কিছু আলোচনা করা যাক।

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

প্রোগ্রামিংএর ক্ষেত্রে তথ্যের ধরনের উপর ভিত্তি করে ভেরিয়েবল ভিন্ন হয়। PHP একটি শিথিল ধরনের প্রোগ্রামিং ল্যাংগুয়েজ। ভেরিয়েবল বিভিন্ন রকম হলেও ভেরিয়েবল ঘোষণা (declare) করার সময় বলে দিতে হয় না এটা কোন ধরনের পাত্র হবে, মানে কোন ধরনের ডাটা টাইপ হবে। পাঠক, এতক্ষণের আলোচনায় ডাটা টাইপ (data type) সম্পর্কে কিছু ধারণা পেয়েছেন আশা করি।

এবার দেখা যাক কত ধরনের ডাটা টাইপ আছে।

PHP তে আট ধরনের ডাটা টাইপ আছে। সেগুলো হচ্ছে-

  • integer ইন্টিজার বা পূর্ণ সংখ্যা, যেমন- 10, 5, 6
  • float ফ্লটিং পয়েন্ট বা দশমিক সংখ্যা, যেমন- 5.25, 3.0
  • string স্ট্রিং বা বর্ণগুচ্ছ, যেমন- “This is a string.”
  • boolean বুলিয়ান বা সত্য মিথ্যা, TRUE এবং FALSE
  • array এ্যারে
  • object অবজেক্ট
  • resource রিসোর্স
  • NULL নাল

PHP 6 এ Unicode এবং Binary নামে আরো দুই ধরনের ডাটা টাইপ সংযুক্ত করা হয়েছে। (চলবে….)

  • Share/Bookmark