বাংলায় পিএইচপি নিয়ে কিছুমিছু
Posts tagged লুপ
পিএইচপি বেসিকস ৭: লুপ, for দিয়ে
Dec 12th
আমাদের আগের আর্টিকেলে আমরা বলেছিলাম যে পিএইচপিতে সাধারনভাবে চার রকমের লুপ আছে এবং আমরা 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 ফাংশন দিয়ে। এই ফাংশন গুলো সম্পর্কে বিস্তারিত জানার জন্য আমাদের ম্যাথ সংক্রান্ত আর্টিকেলটি পড়ুন
বাকি অংশটুকুতে আর নতুন কিছু নেই। আমাদের আগের আর্টিকেল গুলো পড়ে থাকলে আপনি অনশ্যই বুঝতে পারবেন বাকি লাইন গুলোতে আমরা কি করেছি।
পিএইচপি বেসিকস ৬ – লুপ, while এবং do-while দিয়ে
Dec 10th
কোডের কোন একটি অংশ বার বার রান করানোর জন্য আমরা লুপ ব্যবহার করি। পিএইচপি তে বেশ কয়েকভাবে লুপ তৈরী করা যায়, যেমন 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 এর সাথেই। বাকি সব তো একই রকম।
সাম্প্রতিক মন্তব্যসমূহ