حلقه for، foreach و while در PHP

تا این مرحله از آموزش های مقدماتی PHP تا حدود زیادی مسیرمان را به سمت یادگیری این زبان پرکاربرد برنامه نویسی وب هموار کرده ایم، پس از آشنایی با مبحث متغیرها، عملگرهای محاسبه، مقایسه و استدلال منطقی، کار با دستورات شرطی if و else و بررسی نحوه استفاده از switch و case در کدنویسی ها، این بار نوبت به آموزش کاربرد حلقه های for، foreach و while در PHP است، از آنجایی که حلقه ها در زبان های برنامه نویسی و به طور خاص در برنامه نویسی PHP کاربردهای فراوانی دارند یادگیری و درک این مبحث می تواند در روند پیشرفت آموزش ها بسیار کمک کننده باشد، در ادامه خواهیم گفت که چرا و چگونه باید از حلقه for، foreach و while در کدنویسی استفاده کنیم.
حلقه (Loop) چیست؟
در اکثر زبان های برنامه نویسی و از جمله PHP حلقه ها برای انجام فرآیندها و بلاکی از کد در دور تکرار کاربرد دارند، در هنگام کدنویسی موقعیت های زیادی پیش می آید که بخواهیم قسمتی از کد برنامه را با تکرار اجرا کنیم، در این مواقع ابزار برنامه نویس معمولا استفاده از حلقه (Loop) است، به طور مثال اگر در یک مسابقه 5 گروه شرکت کننده داشته باشیم و بخواهیم امتیاز کسب شده آنها را در جدول ترسیم کنیم، می توانیم این کار را با حلقه انجام دهیم:
<?php
echo '<table border="1">';
$group = array('A' => 120, 'B' => 125, 'C' => 83, 'D' => 154, 'E' => 123);
foreach($group as $key => $value) {
echo '<th>' . $key . '</th>' . '<td>' . $value . '</td><tr></tr>';
}
echo '</table>';
?>
با اجرای نمونه کد بالا نتیجه در جدول نمایش داده خواهد شد، به فرض:A 120
B 125
C 83
D 154
E 123
در این نمونه کد از آرایه و حلقه foreach استفاده شده که در ادامه بیشتر توضیح خواهیم داد.انواع حلقه در PHP
مانند اغلب زبان های برنامه نویسی در PHP نیز چند نوع حلقه (Loop) وجود دارد که با به حساب آوردن همه آنها می توان تعداد حلقه در PHP را در چهار دسته خلاصه کرد:
حلقه for، حلقه foreach، حلقه while و حلقه do while.
حلقه for برای مواقعی کاربرد دارد که تعداد دور حلقه عدد مشخصی باشد، حلقه foreach برای کار با آرایه ها (کلید و مقدار) مناسب است، حلقه while برای مواقعی که دور حلقه صرفا مبتنی بر برقرار (true) یا عدم برقرار (false) بودن یک شرط است و تعداد دور حلقه از قبل مشخص نباشد کاربرد دارد، در نهایت شکل دیگری از حلقه while تحت عنوان do while وجود دارد که تنها تفاوت آن با while ساده اجرای اولین دور بدون در نظر گرفتن true یا false بودن شرط حلقه است، در ادامه به صورت موردی در خصوص هر کدام از حلقه ها و نحوه کاربرد آنها توضیح خواهیم داد.
حلقه for در PHP
اولین حلقه ای که می خواهیم بررسی کنیم for است، از حلقه for در PHP زمانی استفاده می کنیم که بخواهیم به تعداد مشخصی دور تکرار داشته باشیم، به عبارتی دور تکرار در حلقه for از قبل مشخص است و معمولا در هر دور فرآیندی صورت می گیرد که در نهایت شرط حلقه false شده و دور تکرار به اتمام برسد، مثال:
<?php
//حلقه for
for($i = 1; $i <= 3; $i++){
echo "دور شماره $i <br>";
}
?>
مثال بالا خروجی زیر را تولید خواهد کرد.دور شماره 1
دور شماره 2
دور شماره 3
توضیح:- شیوه نگارش (Syntax) حلقه for به این صورت است که ساختار اصلی سه عبارت (Expression) دارد، عبارت اول همان مقادیر پیش فرض برای متغیر (i = 1) است، عبارت دوم تعیین شرط برای زمان خاتمه حلقه است (i <= 3) و عبارت آخر تغییرات مقادیر متغیر در هر دور حلقه است (افزایش i به میزان یک واحد با عملگر ++).
- عبارت i در مثال بالا فرضی و انتخابی است، طبق رویه برنامه نویسان معمولا از کاراکتر i بدین منظور استفاده می کنند، در صورت نیاز می توان از هر عنوان مجاز دیگری استفاده کرد.
- دقت کنیم در برنامه نویسی حلقه هایی که می نویسیم باید در مرحله ای به پایان برسند، اگر بررسی شرط حلقه همیشه درست (true) باشد دور تکرار آن تا بی نهایت (Infinite Loop) ادامه می یابد و قاعدتا این حالت یک باگ و نقص بزرگ در برنامه است و نهایتا باعث از کار افتادن مرورگر کاربر یا Down شدن سرور خواهد شد.
در مثال زیر اشتباه کوچکی صورت گرفته و حلقه تا بی نهایت ادامه پیدا می کند، با کمی دقت متوجه ایراد کار خواهیم شد:
<?php
//حلقه for تکرار بينهايت
for($i = 0; $i >= 0; $i++){
echo "دور شماره $i <br>";
}
?>
با دقت در ساختار حلقه مشخص است که شرط آن همواره true و برقرار است (مقدار i عددی مساوی 0 یا بزرگتر از آن خواهد بود).حلقه foreach در PHP
نوع دیگری از حلقه در PHP تحت عنوان foreach برای کار با آرایه ها کاربرد دارد، آرایه در زبان های برنامه نویسی و از جمله برنامه نویسی وب کاربردهای زیادی دارد و به همین دلیل مفسر PHP برای کنترل و پردازش این نوع متغیرها ابزار حلقه foreach را در نظر گرفته است، به طور مثال وقتی در فرم HTML فیلد Select با قابلیت انتخاب چند value را به سرور ارسال می کنیم معمولا از طریق حلقه است که می توانیم به تمام مقادیر ارسال شده دسترسی داشته باشیم، در این حالت حلقه foreach در هر دور از ابتدا به انتها کلید و مقدار آرایه را پردازش کرده و تا زمانی که اطلاعات وجود دارد و شرط حلقه درست یا true باشد، دور تکرار ادامه پیدا می کند، مثال:
برای انتخاب چند مورد کليد Ctrl را نگهداريد.<br>
<form action="" method="post">
<label for="select">انتخاب یک یا چند مورد:</label>
<select name="select[]" id="select" multiple="multiple" size="4">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br>
<input name="check" type="hidden" value="1">
<input type="submit" value="ارسال">
</form>
<?php
$select = @$_POST['select'];
//print_r($select);
$check = @$_POST['check'];
if($check == 1) {
foreach($select as $key => $value) {
echo 'مقدار دور شماره ' . $key . ': ' . $value . '<br>';
}
}
?>
در صورت انتخاب مقدار دوم و چهارم از فیلد Select خروجی مثال بالا به صورت زیر خواهد بود:مقدار دور شماره 0: 2
مقدار دور شماره 1: 4
توضیح:- زمانی که بخواهیم با فیلد Select چند مقدار به صورت همزمان ارسال شوند باید قسمت name آن را با علامت [] در انتها درج کنیم این کاراکتر یک قرارداد است و به مرورگر می گوید که قصد ارسال مقادیر به صورت آرایه را داریم، همچنین پارامتر mutiple نیز برای تگ select باید تنظیم شده باشد.
- پس از انتخاب و ارسال اطلاعات فرم در سمت سرور مقادیر با متد POST دریافت و به متغیر select نسبت داده می شود، اگر قسمت print_r را اجرا کنیم نتیجه مشابه نمونه زیر در خروجی چاپ می شود:
Array ( [0] => 2 [1] => 4 )
این نتیجه همان آرایه و مقدار ارسال شده است.- دقت کنیم شمارش در آرایه از 0 شروع می شود و اولین مقدار 1 نیست، در اینجا نیز فیلد اول با کلید 0 و مقدار 2 و فیلد چهارم با کلید 1 و مقدار 4 مشخص است.
- حلقه foreach از دو شیوه نگارش (Syntax) پشتیبانی می کند، هم به صورت:
$array as $value
و هم به صورت:$array as $key => $value
همان طور که مشخص است در هر دو حالت قسمت مقدار وجود دارد.- هر کلید و مقدار آرایه در هر دور حلقه به ترتیب به عنوان ورودی انتخاب و پس از اعمال پردازش تعیین شده نوبت به کلید و مقدار بعدی می رسد تا زمانی که پارامترهای آرایه به انتها برسند، در مثال بالا آرایه ما دارای دو مقدار است پس دور حلقه foreach برای هر کدام یک بار اجرا خواهد شد (for به معنی برای و each به معنی هر).
- درک صحیح نحوه عملکرد حلقه foreach نیازمند آشنایی کامل با مبحث آرایه ها در PHP است، لذا در اینجا به همین مقدار بسنده می کنیم.
حلقه while در PHP
ساختار حلقه while در PHP و اغلب زبان های برنامه نویسی به این صورت است که با بررسی شرط تا هر زمان که برقرار و درست (true) باشد کدهای داخل کاراکترهای {} اجرا می شود، برخلاف حلقه for که باید تعداد دور حلقه از قبل و درون ساختار حلقه مشخص باشد در حلقه while الزامی به مشخص بودن تعداد دور حلقه نیست و خاتمه حلقه مبتنی بر false شدن بررسی برقراری شرط آن است که عمدتا مبتنی بر متغیری بیرون از حلقه است، در مثال ساده زیر حلقه while را تا زمانی که تعداد کاربران (متغیر فرضی user) بیشتر از عدد 0 است ادامه داده و خروجی از آن گرفته ایم:
<?php
//مقادير پيش فرض براي متغير
$users = 5;
//حلقه while
while($users > 0){
echo "کاربر شماره $users <br>";
$users--;
}
?>
خروجی کد بالا به صورت زیر خواهد بود:کاربر شماره 5
کاربر شماره 4
کاربر شماره 3
کاربر شماره 2
کاربر شماره 1
توضیح:- ابتدا برای متغیر فرضی users یک مقدار پیش فرض قرار می دهیم تا بعد در حلقه while برای آن شرط تعیین کنیم.
- سپس در قسمت مربوط به حلقه while بررسی می کنیم تا زمانی که مقادیر متغیر users بزرگتر از صفر باشد بلاک کد داخل کاراکترهای {} اجرا شود.
- درون حلقه یک دستور خروجی echo نوشته ایم که در هر دور مقادیر را چاپ می کند و در قسمت آخر در هر دور حلقه یک واحد از متغیر users کاسته می شود و این کار تا زمانی که مقادیر این متغیر بزرگتر از 0 است ادامه می یابد.
- دقت کنیم چون متغیر فرضی ما در این مثال به صورت عددی بود می توانیم بر روی آن اعمال ریاضی مثل جمع، تفریق و... را انجام دهیم، در برنامه نویسی سطح بالاتر موقعیت هایی پیش می آید که انواع متفاوتی از داده ها (String، Integer، Boolean، Array و...) را باید با توجه به نوع آنها بررسی کنیم.
مثال دیگری از کاربرد حلقه while در PHP
برای آشنایی بیشتر مثال دیگری از کاربرد حلقه while در برنامه نویسی PHP را با هم بررسی می کنیم:
<?php
//مقادیر پیش فرض برای متغیر
$users = 5;
$admin = 1;
//حلقه while
while($users > 0){
//حلقه تو در تو
while($admin > 0){
echo "مدیر سایت، خوش آمدید<br />";
$admin--;
}
echo "کاربر شماره $users خوش آمدید<br />";
$users--;
}
?>
خروجی کد بالا به صورت زیر خواهد بود.مدیر سایت، خوش آمدید
کاربر شماره 5 خوش آمدید
کاربر شماره 4 خوش آمدید
کاربر شماره 3 خوش آمدید
کاربر شماره 2 خوش آمدید
کاربر شماره 1 خوش آمدید
توضیح:- مثال بالا نحوه استفاده از حلقه while درون حلقه ای دیگر را به صورت تو در تو نشان می دهد.
- ساختار حلقه با کمی تامل قابل درک است، تنها چیزی که اینجا اضافه کرده ایم متغیر admin و حلقه مربوط به آن است که در درون حلقه اصلی اجرا می شود.
- استفاده از این شیوه یعنی حلقه های تو در تو در برنامه نویسی سطح پیشرفته تر PHP با توجه به نیاز برنامه ها کاربردهای خاص خودش را دارد.
حلقه while بدون شرط در PHP
گفتیم در حالت عادی حلقه while باید همراه با یک شرط استفاده شود اما این قابلیت در مفسر PHP وجود دارد که حلقه while را بدون در نظر گرفتن شرط و صرفا با درج عبارت true استفاده کنیم، مثال:
<?php
$i = true;
$loop = 1;
while(true) {
if($i === false) {
break;
} else {
echo 'Loop: ' . $loop . '<br>';
}
if($loop > 4) {
$i = false;
} else {
$loop++;
}
}
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:Loop: 1
Loop: 2
Loop: 3
Loop: 4
Loop: 5
همان طور که مشخص است در صورتی که متغیر فرضی loop به مقدار 5 برسد متغیر i به صورت false مقداردهی می شود و در نتیجه در دور بعدی بررسی شرط if اول مثبت شده و دستور break اجرا می شود، در ادامه خواهیم دید که با اجرای دستور break دور حلقه while به پایان می رسد.حلقه do while در PHP
در برنامه نویسی وب با PHP گاهی مواقع پیش می آید که بخواهیم حلقه while را بدون بررسی شرط آن حداقل یک بار اجرا کنیم و در دورهای بعدی بررسی کنیم که آیا شرایط ادامه حلقه مهیا است یا خیر، مفسر PHP بدین منظور از ساختار do while که شبیه while عادی است بهره می گیرد، تنها تفاوت این است که در do while دور اول حلقه بدون هیچ پیش شرطی اجراء می شود اما دورهای بعد مثل این است که به روال عادی حلقه while بازگشت کنیم، مثال زیر روشن است:
<?php
//مقادیر پیش فرض برای متغیر
$i = 1;
do{
echo "کاربر شماره $i خوش آمدید<br>";
$i--;
}
//حلقه while
while ($i > 1);
?>
در مثال بالا با وجود اینکه در قسمت شرط while گفته ایم تا زمانی که متغیر i از 1 بزرگتر باشد و مقادیر این متغیر به صورت پیش فرض 1 است (شرط برقرار نیست)، اما خروجی زیر به مرورگر ارسال می شود:کاربر شماره 1 خوش آمدید
این حالت به جهت خاصیت ذاتی حلقه do while است که دور اول حلقه بدون بررسی شرط آن اجرا می شود.استفاده از break و continue در حلقه ها
در ساختار حلقه ها در صورت نیاز می توانیم از دو دستور کلیدی break و continue استفاده کنیم، اجرای دستور break باعث اتمام کلی حلقه شده و دستور continue باعث ایجاد حالت پرش به دور بعدی خواهد شد، مثال:
<?php
$num = 10;
while(true) {
if($num == 4) {
$num--;
continue;
} elseif($num == 1) {
break;
}
if($num % 2 == 0) {
echo "$num: Even - زوج<br>";
} else {
echo "$num: Odd - فرد<br>";
}
$num--;
}
?>
با اجرای نمونه کد بالا خروجی زیر در مرورگر چاپ می شود:10: Even - زوج
9: Odd - فرد
8: Even - زوج
7: Odd - فرد
6: Even - زوج
5: Odd - فرد
3: Odd - فرد
2: Even - زوج
نکته مهم این نمونه ساختار کاهش یک واحدی متغیر فرضی num در قسمتی است که می خواهیم دستور continue را اجرا کنیم، اگر این کاهش اتفاق نیفتد حلقه در دور تکرار بینهایت گرفتار می شود چون مقدار num همواره 4 است و در دورهای بعدی پیوسته دستور شرطی if حلقه اجرا می شود!شیوه نگارش (Syntax) جایگزین در حلقه ها
در انتهای این مبحث بد نیست اشاره ای به دیگر شیوه های نگارش (Syntax) حلقه ها در PHP داشته باشیم، مفسر PHP علاوه بر در نظر گرفتن شیوه دستوری متداول برای نوشتن حلقه ها شکل دیگری از نگارش را تحت عنوان "دو نقطه یا Colon Syntax" پشتیبانی می کند که البته خیلی متداول نیست اما جهت آشنایی بیشتر چند نمونه زیر را بررسی می کنیم:
<?php
for($i = 1; $i <= 10; $i++):
echo $i;
endfor;
?>
خروجی:12345678910
<?php
$i = 1;
while($i <= 10):
echo $i;
$i++;
endwhile;
?>
خروجی:12345678910
در این شیوه به جای استفاده از کاراکترهای {} جهت تعیین محدوده بلاک حلقه، از کاراکتر : و عبارت endfor یا endwhile استفاده شده است، این سبک حلقه در نتیجه هیچ تفاوتی با شیوه متداول ندارد و صرفا شکل ظاهری آن متفاوت است.دسته بندی: آموزش مقدماتی » PHP
برچسب ها: PHP

تعریف و استفاده از متغیر (Variable) در PHP
آموزش برنامه نویسی وب با PHP
توابع (Functions) در PHP
توابع کار با آرایه در PHP - بخش دوم
دستور switch و case در PHP
دیدگاه


جواد
۲۰:۲۰ ۱۴۰۲/۱۱/۲۵
سلام خسته نباشید.
من میخواستم تعداد نامحدودی عدد رو با هم جمع و تفریق کنم از کدوم حلقه باید در public function کلاسم استفاذه کنم و چجوری ؟
من میخواستم تعداد نامحدودی عدد رو با هم جمع و تفریق کنم از کدوم حلقه باید در public function کلاسم استفاذه کنم و چجوری ؟
سوالتان مبهم است، تابع باید ورودی و خروجی مشخصی داشته باشد و تعداد نامحدود باعث ایجاد دور بی نهایت می شود که عملکرد سرور را مختل خواهد کرد، اما اگر منظورتان تعداد از قبل نامشخص است می توانید از مثال زیر الگوبرداری کنید:
<?php
class MyClass {
public $num_array_1;
public $num_array_2;
public function __construct($num_array_1, $num_array_2) {
$this->num_array_1 = $num_array_1;
$this->num_array_2 = $num_array_2;
}
public function myFunction() {
for($i = 0; $i < count($this->num_array_1); $i++) {
echo $this->num_array_1[$i] . ' + ' . $this->num_array_2[$i] . ' = ' . ($this->num_array_1[$i] + $this->num_array_2[$i]) . '<br>';
}
}
}
$num_array_1 = [4, 6, 8, 3, 9];
$num_array_2 = [2, 3, 7, 8, 0];
$call = new MyClass($num_array_1, $num_array_2);
$call->myFunction();
?>
Hassan
۱۲:۱۶ ۱۴۰۱/۰۷/۱۲
سلام وقت بخیر
ببخشید میتونید راهنماییم کنید چطور میتونم این مشکل رو برطرف کنم بعد از دسته بازی نام دیگه ای نیست میخوام کاراکتر (,) حذف بشه
مثال دسته : انیمیشن, بازی,
دارم از این کد استفاده میکنم
ببخشید میتونید راهنماییم کنید چطور میتونم این مشکل رو برطرف کنم بعد از دسته بازی نام دیگه ای نیست میخوام کاراکتر (,) حذف بشه
مثال دسته : انیمیشن, بازی,
دارم از این کد استفاده میکنم
<?php echo esc_html( $term->name );?>
برای حذف آخرین کاراکتر (Comma) در PHP می توانید از نمونه کد زیر استفاده کنید:
<?php
$term->name = rtrim($term->name, ',');
echo esc_html($term->name);
?>
فیروزه
۱۴:۱۴ ۱۴۰۰/۱۲/۱۸
1 . برنامه ای بنویسید که سه عدد از کاربر گرفته آنگاه میانگین آن سه عدد را با زدن دکمه نمایش دهد
2. برنامه ای بنویسید که دو عدد از کاربر گرفته سپس با زدن دکمه عدد اول را در عدد دوم ضرب نموده آنگاه نتیجه نمایش دهد
3. برنامه ای بنویسید که در یک فرم دو عدد از کاربر گرفته سپس با زدن دکمه عدد اول را به توان عدد دوم رسانده آنگاه در خروجی چاپ نماید.
4. در تمرین قبل نتیجه را در یک تکستباکس نمایش دهد.
2. برنامه ای بنویسید که دو عدد از کاربر گرفته سپس با زدن دکمه عدد اول را در عدد دوم ضرب نموده آنگاه نتیجه نمایش دهد
3. برنامه ای بنویسید که در یک فرم دو عدد از کاربر گرفته سپس با زدن دکمه عدد اول را به توان عدد دوم رسانده آنگاه در خروجی چاپ نماید.
4. در تمرین قبل نتیجه را در یک تکستباکس نمایش دهد.
لطفا توجه داشته باشید رسالت سایت راهنمایی جهت حل اشکالات جزئی کاربران است نه حل تمرین های آنها! در هر صورت جهت راهنمایی برای سوال اول یعنی میانگین اعداد:
<?php
if(isset($_POST['submit'])){
@$num_1 = $_POST['num_1'];
@$num_2 = $_POST['num_2'];
@$num_3 = $_POST['num_3'];
echo 'میانگین اعداد: ' . floor(($num_1 + $num_2 + $num_3) / 3) . '<br>';
}
?>
<form action="" method="post">
<label for="num_1">عدد اول:</label>
<input type="text" name="num_1" id="num_1" maxlength="255" />
<label for="num_2">عدد دوم:</label>
<input type="text" name="num_2" id="num_2" maxlength="255" />
<label for="num_3">عدد سوم:</label>
<input type="text" name="num_3" id="num_3" maxlength="255" />
<input type="submit" name="submit" id="submit" value="ارسال" />
برای سوال دوم و ضرب اعداد:<?php
if(isset($_POST['submit'])){
@$num_1 = $_POST['num_1'];
@$num_2 = $_POST['num_2'];
echo 'حاصل ضرب اعداد: ' . ($num_1 * $num_2) . '<br>';
}
?>
<form action="" method="post">
<label for="num_1">عدد اول:</label>
<input type="text" name="num_1" id="num_1" maxlength="255" />
<label for="num_2">عدد دوم:</label>
<input type="text" name="num_2" id="num_2" maxlength="255" />
<input type="submit" name="submit" id="submit" value="ارسال" />
برای به توان رساندن اعداد:<?php
if(isset($_POST['submit'])){
@$num_1 = $_POST['num_1'];
@$num_2 = $_POST['num_2'];
echo 'عدد اول به توان عدد دوم: ' . pow($num_1, $num_2) . '<br>';
}
?>
<form action="" method="post">
<label for="num_1">عدد اول:</label>
<input type="text" name="num_1" id="num_1" maxlength="255" />
<label for="num_2">عدد دوم:</label>
<input type="text" name="num_2" id="num_2" maxlength="255" />
<input type="submit" name="submit" id="submit" value="ارسال" />
برای ایجاد خروجی به صورت Textbox خط مربوط به دستور echo را به صورت زیر بنویسید:echo '<input type="text" value="' . pow($num_1, $num_2) . '"><br>';
مهلا
۱۳:۵۹ ۱۴۰۰/۱۰/۱۵
من یه تکه کدی نوشتم با زبان php که 9 عکس دادم با سه سطر و ستون میخوام در خروجی این عکسها بطور تصادفی با هربار refresh عوض بشه نمیدونم چه تابعی باید بدم ممنون میشم راهنمایی کنید
نمونه کد درج نکرده اید، به هر صورت برای خروجی مد نظر شما می شود فایل ها را به صورت pic_1.jpg الی pic_9.jpg نامگذاری و برای ایجاد حالت تصاویر تصادفی از روش زیر الگوبرداری کرد:
<?php
$pic_numbers = @array();
while(count($pic_numbers) < 9) {
$rand_number = rand(1, 9);
if(!in_array($rand_number, $pic_numbers)) {
$pic_numbers[] = $rand_number;
}
}
//print_r($pic_numbers);
foreach($pic_numbers as $key => $value) {
echo 'pic_' . $value . '.jpg<br>';
}
?>
مهلا
۱۳:۴۰ ۱۴۰۰/۱۰/۱۱
میخام با php دو تا عدد بنویسم که اگه عدد اول بزرگتر بود 5 بار چاپ کنه که عدد اول بزرگتراست. ممنون میشم جواب بدید ممنون
برای مقایسه دو عدد و چاپ خروجی می توانید از نمونه کد زیر استفاده کنید:
<?php
$a = 8;
$b = 3;
if($a > $b){
for($i = 1; $i <= 5; $i++){
echo "عدد " . $a . " بزرگتر است!<br>";
}
}
?>
alireza
۰۷:۵۵ ۱۴۰۰/۰۹/۰۱
سلام ممنون از سایت خوبتون عالیه ..... من قبلا این سوال رو داشتم
با استفاده از حلقه while برنامه ای بنویسید که روزهای هفته را بگيرد و اسم آن روز را چاپ کند مثلا اگر کاربر 2 را وارد کرد در خروجی. یکشنبه. چاپ شود ولی حواسم نبود باید یه برنامه html داشته باشیم که روزهای هفته رو php بگیره باید در کادری که کنارش نوشته ایام هفته مثلا عدد 2 را که وارد کنیم یکشنبه رو نمایش بده
کدهای php رو دارم که از همین سایت در خواست کردم و بسیار متشکرم بابت کدهای php اما به تنهایی نمیشه اجرایی کرد باید برنامه html اون هم باشه
این عقب موندگی همش حاصل ابتلا به بیماری هست ... لطفا کمکم کنید ... من دانش آموز رشته تولید و توسعه پایگاه اینترنتی پایه دوازدهم هستم .. به من بد اقبال کمک کنید ... باز هم ممنونم از سایت خوبتون
با استفاده از حلقه while برنامه ای بنویسید که روزهای هفته را بگيرد و اسم آن روز را چاپ کند مثلا اگر کاربر 2 را وارد کرد در خروجی. یکشنبه. چاپ شود ولی حواسم نبود باید یه برنامه html داشته باشیم که روزهای هفته رو php بگیره باید در کادری که کنارش نوشته ایام هفته مثلا عدد 2 را که وارد کنیم یکشنبه رو نمایش بده
کدهای php رو دارم که از همین سایت در خواست کردم و بسیار متشکرم بابت کدهای php اما به تنهایی نمیشه اجرایی کرد باید برنامه html اون هم باشه
این عقب موندگی همش حاصل ابتلا به بیماری هست ... لطفا کمکم کنید ... من دانش آموز رشته تولید و توسعه پایگاه اینترنتی پایه دوازدهم هستم .. به من بد اقبال کمک کنید ... باز هم ممنونم از سایت خوبتون
برای ارسال روز هفته از فرم HTML و نمایش خروجی با دستورات PHP می توانید از کامل شده کد قبلی به صورت زیر الگوبرداری کنید:
<?php
//بررسی ارسال فرم
if(!isset($_POST['day'])){
//پیش فرض
$day = 8;
} else {
//دریافت از فرم
$day = @$_POST['day'];
//بررسی
if((empty($day) && !is_numeric($day)) || ($day < 0 || $day > 6)){
echo 'لطفا یک عدد بین 0 تا 6 وارد کنید!';
$day = 8;
}
}
$find = false;
$loop = 0;
while($loop < 7){
switch($day){
case 0:
echo 'جمعه';
$find = true;
break;
case 1:
echo 'شنبه';
$find = true;
break;
case 2:
echo 'یکشنبه';
$find = true;
break;
case 3:
echo 'دوشنبه';
$find = true;
break;
case 4:
echo 'سه شنبه';
$find = true;
break;
case 5:
echo 'چهارشنبه';
$find = true;
break;
case 6:
echo 'پنجشنبه';
$find = true;
break;
}
if($find){
break;
}
$loop++;
}
?>
<form action="#" method="post">
<label for="day">ایام هفته:</label>
<input type="text" name="day" maxlength="1" dir="ltr">
<input type="submit" value="ارسال">
</form>
برای درک بهتر توصیه می کنیم آموزش های مقدماتی را مرور کنید.علیرضا بهرامپور
۱۲:۵۸ ۱۴۰۰/۰۸/۳۰
سلام من دانش آموز هستم و دنبال پاسخی میگردم که دبیرمون از ما خواسته ولی چون بیمار بودم و در کلاس ها نبودم متوجه نمی شم اگر قادر هستید لطفا کمک کنید
با استفاده از حلقه while برنامه ای بنویسید که روزهای هفته را بگيرد و اسم آن روز را چاپ کند مثلا اگر کاربر 2 را وارد کرد در خروجی. یکشنبه. چاپ شود
با استفاده از حلقه while برنامه ای بنویسید که روزهای هفته را بگيرد و اسم آن روز را چاپ کند مثلا اگر کاربر 2 را وارد کرد در خروجی. یکشنبه. چاپ شود
استفاده از حلقه while بهترین راه حل برای نوشتن این کد نیست، در هر صورت با توجه به صورت مسئله نمونه دستورات زیر در زبان برنامه نویسی PHP کاربرد دارند:
<?php
//متغیرهای پیش فرض
$day = 2;
$find = false;
$loop = 0;
//حلقه
while($loop < 7){
switch($day){
case 0:
echo 'جمعه';
$find = true;
break;
case 1:
echo 'شنبه';
$find = true;
break;
case 2:
echo 'یکشنبه';
$find = true;
break;
case 3:
echo 'دوشنبه';
$find = true;
break;
case 4:
echo 'سه شنبه';
$find = true;
break;
case 5:
echo 'چهارشنبه';
$find = true;
break;
case 6:
echo 'پنجشنبه';
$find = true;
break;
}
//بررسی وجود خروجی
if($find){
//خاتمه حلقه
break;
}
//کنترل دور حلقه
$loop++;
}
?>
Negar
۲۲:۵۷ ۱۴۰۰/۰۸/۲۵
میمیری چارتا سوال درست و با جواب بزاری، اخه چین اینا اصلا سرو تهشون معلوم نیست 😐😐😐تخته😐😂😂
ماهک
۱۶:۰۷ ۱۴۰۰/۰۲/۱۸
برنامه ای بنویسید که اعداد کوچک تر از 100 و بزرگ تر از 20 را به همراه زوج یا فرد بودن آن با استفاده از دستورات for و if ، چاپ کند.
سلام لطفا این برنامه را با php می خواهم بنویسم اما جواب نمیگیرم لطفا راهنمایی برفرمایید.
سلام لطفا این برنامه را با php می خواهم بنویسم اما جواب نمیگیرم لطفا راهنمایی برفرمایید.
برای چاپ اعداد زوج و فرد در یک بازه خاص می توانید از نمونه کد زیر استفاده کنید:
<?php
for($i = 21; $i < 100; $i++){
if($i % 2){
echo $i . ': فرد<br>';
} else {
echo $i . ': زوج<br>';
}
}
?>
محمد
۰۰:۰۲ ۱۳۹۹/۰۹/۲۲
با عرض سلام و خسته نباشید ببخشید یه قسمتی دارم برای افزودن کالا به سبد خرید یه پیغامی از طریق جکوری گذاشتم وقتی کلیک کنم این پیغام ظاهر میشه کالا اضافه شد به سبد ولی مشکلی که دارم روی لوکال این قسمت درست جواب میده ولی روی هاست باید 2 بار کلیک کنم تا پیغام ظاهر بشه بعد هم که ظاهر میشه 2 عدد کالا به سبد اضافه میکنه یعنی عملا بار اول که کلیک میکنم پیغام ظاهر نمیشه ولی تعجب هست روی لوکال درست جواب میده ممنون اگر بگید مشکل از کجاست تشکر
قاعدتا اینگونه موارد نیاز به خطایابی و تست و بررسی برنامه دارد و بدون دیدن سورس کدها خیلی نمی توانیم دقیق راهنمایی کنیم، با توجه به توضیحات ظاهرا صرفا مشکل نمایش پیام در کلیک اول وجود دارد و فرآیند اضافه شدن کالا مشکلی ندارد، لذا باید ببینید چه اشکالی در تغییر استایل بلاک نمایش پیام به وجود می آید، برای بررسی بیشتر دکمه F12 را در مرورگر فشرده و از قسمت Console خطاهای احتمالی را بررسی کنید، در صورت تمایل آدرس یک صفحه آنلاین از برنامه را جهت تست قرار دهید.
فاطمه
۱۲:۱۲ ۱۳۹۹/۰۸/۲۶
چگونه در حلقه ها اعداد را جمع کنیم و در خروجی مجموع انان را نشان دهد مثلا جواب
۱+۲+۳+۴=
برای استفاده از حلقه ابتدا باید اعداد مورد نظر در یک آرایه تعریف شده باشند، مثال:
<?php
$array = [1, 2, 3, 4];
$result = 0;
foreach($array as $key => $value){
$result += $value;
}
echo $result;
?>
mohsen
۲۰:۳۳ ۱۳۹۹/۰۸/۲۳
با عرض سلام و خسته نباشید خدمت استاد ببخشید من یه فرمی دارم که از طریق ایجکس ثبت میشه داخل دیتا و بعد میره به صفحه بعدی من از طریق جی کوری این کد رو نوشتم که میخوام یه شرط بزارم که تا وقتی فرم ها پر نشدن به صفحه بعد نره چطوری باید این شرط رو بزارم ممنون از زحمات شما نمونه کدی که بعد از ایجکس به صفحه بعد ارسال میشه به صورت زیر هست اگر با نمونه کد راهنمایی کنید ممنون میشم
$("#sabt").click(function () {
var frm = $("form").serializeArray();
var amount = localStorage.getItem('amount');
frm.push({name:'amount',value:amount});
$.ajax({
url: 'test.php',
type: 'post',
data:frm
})
.done(function (msg) {
window.location.href = 'test5.php';
});
})
برای اعتبارسنجی فرم در جی کئوری روش های مختلفی قابل استفاده است، در نمونه کد زیر چند فیلد جهت مثال با شرط if و else بررسی شده اند:
<form id="form">
<input type="text" name="a" id="a">
<textarea name="b" id="b" rows="8" cols="40"></textarea>
<input type="checkbox" name="c" id="c" value="1">
<button type="button" id="sabt">Submit</button>
</form>
<script>
$("#sabt").click(function () {
var frm = $("#form").serializeArray();
var a = $('#a').val();
var b = $('#b').val();
var c = document.getElementById('c');
if(a.length < 1){
alert('a is empty!');
} else if(b.length < 1){
alert('b is empty!');
} else if(!c.checked){
alert('c is not checked!');
} else {
$.ajax({
url: 'test.php',
type: 'post',
data:frm
})
.done(function (msg) {
window.location.href = 'test5.php';
});
}
});
</script>
هر فیلد با ID متناظر آن قابل شناسایی است.ابوالفضل
۰۰:۵۵ ۱۳۹۹/۰۸/۰۹
سلام استاد
اومدم امروز بعد از سالها سوالاتی که از شما استاد بزرگوارم میپرسیدم رو زیر این پست مرور می کردم واقعا چقدر مبتدی بودم و شما چقدر صبور بودین بابت همه زحمات و وقتی که گذاشتید برام بی نهایت ازتون سپاسگزارم و قطعا با کمک آموزش های شما امروز توانایی دریافت پروژه های گوناگون رو دارم امیدوارم همیشه موفق باشین خوشحالم که همچنان وبگو پاسخگوست
اومدم امروز بعد از سالها سوالاتی که از شما استاد بزرگوارم میپرسیدم رو زیر این پست مرور می کردم واقعا چقدر مبتدی بودم و شما چقدر صبور بودین بابت همه زحمات و وقتی که گذاشتید برام بی نهایت ازتون سپاسگزارم و قطعا با کمک آموزش های شما امروز توانایی دریافت پروژه های گوناگون رو دارم امیدوارم همیشه موفق باشین خوشحالم که همچنان وبگو پاسخگوست
از اینکه در راه موفقیتتان کمک ناچیزی بوده ایم قلبا خوشحالیم، در هر سطحی از مهارت که باشیم چیزهای جدیدی برای یادگیری هست، مهم اینکه از زمین های خاکی شروع کنیم :)
مبینا
۰۳:۵۷ ۱۳۹۹/۰۸/۰۱
سلام من برنامه ای میخواستم که داخل ارایه 5 رنگ قرار گرفته باشه. و با استفاده از حلقه for این یک متنو به اون پنج رنگ. نمایش بده ممنون میشم پاسخ بدین
برای چاپ متن در حلقه for به پنج رنگ متفاوت می توانید از نمونه کد زیر استفاده کنید:
<?php
$colors = array('red', 'green', 'blue', 'yellow', 'gray');
for($i = 0; $i < count($colors); $i++){
echo '<div style="color: ' . $colors[$i] . '">Sample Text</div>';
}
?>
فایز پور جهانبخشی
۰۵:۵۶ ۱۳۹۹/۰۷/۲۸
سلام
اگر بخواهیم برنامه ای که داخل متلب نوشتیم تا یک ثانیه اجرا شود و بعد از ثانیه اول در حالت خطا که به هر کدام از ماتریس های حالت سالم یک سطر و ستون اضافه شده است رو اجرا کنیم . حلقه این برنامه چطور نوشته میشه؟ چون حالت خطا به ماتریس های حالت اضافه شده آلارم ناهمسانی اندازه ماتریس ها را میده چطور میشه مشکل را حل کرد؟
با تشکر
اگر بخواهیم برنامه ای که داخل متلب نوشتیم تا یک ثانیه اجرا شود و بعد از ثانیه اول در حالت خطا که به هر کدام از ماتریس های حالت سالم یک سطر و ستون اضافه شده است رو اجرا کنیم . حلقه این برنامه چطور نوشته میشه؟ چون حالت خطا به ماتریس های حالت اضافه شده آلارم ناهمسانی اندازه ماتریس ها را میده چطور میشه مشکل را حل کرد؟
با تشکر
آموزش در خصوص PHP است، برای MATLAB لطفا به سایت های مرتبط مراجعه کنید.
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.