ساختارهای شرطی در زبان PHP

دسته بندی: آموزش
زمان مطالعه: ۱ دقیقه
۰۴ مرداد ۱۳۹۳

در این جلسه به معرفی و بررسی ساختارهای شرطی در زبان PHP خواهیم پرداخت و مثال های مختلفی را برای درک بهتر مفاهیم ارائه میدهیم . در انتها هم یک مینی پروژه (ماشین حساب با کدهای php) را با همدیگر خواهیم نوشت .

:: لیست مطالبی که در این جلسه گفته میشن به این شکل هست :

فصل 5 : ساختارهاي کنترلي : شرط ها و عبارت هاي منطقي

  • مقدمه و آشنايي با عبارت هاي شرطي در زبان هاي برنامه نويسي
  • بلاک بندي کد با استفاده از آکولادها
  • عبارت شرطي if
  • عبارت هاي else و else if
  • عبارت شرطي switch
  • نقش دستور break در ساختار switch
  • عبارت و عملگر شرطي ?
  • ارائه ي مثال هاي مختلف براي درک عمقي از نحوه ي استفاده از شرط ها
  • ميني پروژه 1 : محدودي کردن نمايش محتوا بر اساس سن و جنسيت کاربر
  • مینی پروژه 2 : نوشتن یک ماشین حساب با دستورات شرطی مختلف در زبان PHP
  • تمرين
:: توجه

این مطلب یک جلسه از آموزش PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش PHP

نویسنده
بیش از 15 سال هست که برنامه نویسی می کنم و از بین همه زبون هایی که کار کردم جاوا، اسمبلی و php رو دوست دارم. دانشجوی دکترای نرم افزارم و توی دانشگاه روی پردازش بیگ دیتا و پردازش موازی کار کردم و عاشق چالش از هر نوعیش هستم! سون لرن مثل بچه منه که 12 سال براش وقت گذاشتم، اینجا همه تلاش می کنیم از شروع یادگیری تا ورود به بازر کار حوزه برنامه نویسی و IT همراهتون باشیم.

جلسات دوره

نظرات کاربران

rasool eslami

من یک IF نوشتم ولی نمیدونم چرا اجرا نمیشه نه STRLEN اجرا میشه نه EMPTY نه FILTER
میشه راهنماییم کنید ممنون

لقمان آوند

احتمالا خطا دارید.
نمایش خطاها رو فعال کنید که ببینید

a a

درست شد استاد . اینو گذاشتم اول صفحه درست شد .

🙂

Pourya Ariyafar

استاد؟؟
چرا قسمت نظرت رو میبندید؟قسمت سوم و چهارم هم بسته شد 😥
بقیه رو لطفا نبندید
چرا به جای اینکه مقادیر آرایه در خروجی چاپ بشه عبارت $pointerVar چاپ میشه؟

 $arrayVar = array(11,22,33,44,55);
$pointerVar = & $arrayVar;
echo '$pointerVar';
وحید صالحی

سلام دوست عزیز کد شما یک اشتباه و یک نکته داره که باید برطرف و رعایت بشه
اشتباه : زمانی که توسط دستور echo می خواهید یک متغییر رو چاپ کنید تنها باید به نام متغییر اشاره کنید و از سینگل کوتیشن استفاده نکنید به این صورت : echo $pointerVar;
نکته : رمانی که تصمیم دارید مقدار یا مقادیر یک آرایه رو برگردونید و یا چاپ کنید حتما باید علاوه بر نام متغییری که حاوی مقادیر آرایه هست به ایندکس اعضای آرایه هم اشاره کنید وگرنه با ارور مواجه می شید چون همون طور که می دونید آرایه ها نوعی از متغییر ها هستند که می توانند n عضو داشته باشن و اگر شما در خروجی به ایندکس آرایه اشاره نکنید کامپایلر نمی تونه متوجه بشه چه عضو یا عضو هایی از آرایه مد نظر هستند و باید مثلا چاپ یا ارسال بشن ایندکس اعضای آرایه ها از0 شروع میشه بطور مثال اگر شما بخواهید مقدار 11 از کد بالا رو چاپ کنید باید به این صورت عمل کنید: echo $pointerVar[0]; همین طور تا انتها مثلا برای مقدار 22 باید از ایندکس دوم که عدد 1 هست بجای 0 استفاده کنید تا مقدار 22 برای شما چاپ بشه و…

حالا گر بخواهید مقادیر آرایه ها رو بصورت key و value چاپ کنید بجای تابع echo باید از تابع print_r استفاده کنید و این بار تنها نام متغییری که آرایه رو درونش قرار داید رو در بین پرانتزهای این تابع قرار بدید و نیاری به اشاره به ایندکس یا اینکدس های ارایه برای چاپ نداردی بصورت زیر نا گفته نمونه توابع دیگری هم برای این کار موجوده اما همین تابع print_r هم مناسبه:

print_r($pointerVar);
موفق باشید

Pourya Ariyafar

ممنون آقای صالحی برای توضیحات کاملتون
یک سوال راهی هست که بشه با دستور echo همه مقادیر داخل آرایه رو چاپ کرد؟ مثل تابع print_r

وحید صالحی

خواهش می کنم بله میشه فقط باید بصورت متوالی بعد از اشاره به متغیر حاوی آرایه ایندکس ها رو هم مشخص کنید مانند حالت زیر و حتما باید توسط .” “. با هم دیگه کام کت بشن و گرنه با ارور مواجه خواهید شد
echo $pointerVar[0] . “, ” . $pointerVar[1] . ” ,” . $pointerVar[2] ;

Rochezto Delaporana

سلام
آقای آوند یه سوال داشتم. در یکی از پست ها اشاره شده بود به اینکه چرا وب سایت شما وردپرسه در حالی که آموزش برنامه نویسی وب را می دهید که شما در پاسح گفتید که نیازی نیست همه چیزو از اول آدم بسازه. وردپرس خیلی از نیازهارو برطرف می کنه. من خودم اینو به عینه تجربه کردم که با وردپرس خیلی کارایه خارق العاده رو می شه با دانلود کردن یه تم ساده یا یه پلاگین ساده انجام داد. خیلی کارا هست که همین الان با کدنویسی بلدشون نیستم ولی تو ورودپرس انجام می دم. حالا سوال من اینه که پس چرا شرکت های فعال در زمینه طراحی وب انقدر تاکید می کنن به اینکه برنامه نویس از صفر تا صد وب سایت رو بدون استفاده از cms بسازه. فقط دانش استفاده و طراحی با cms برایشان برای کار کافی نیست. حتی در دنیای غرب همین شرایط حکم فرماست. چرا وضعیت به این صورته. من خودم به شخصه خیلی وقت ها این حس بهم دست می ده که حتی اگز اپلیکیشن تحت وب و یا وب سایت هم بسازم از دید حرفه ای با سطحی که وردپرس و یا جوملا بعد از این همه سال به آن رسیده اند قابل مقایسه نیست.

لقمان آوند

سلام
بله حرفتون درسته. اگر بخواید حرفه ای باشید دانشتون هم باید بالا باشه. صرف اینکه با یه cms و نحوه کار اون آشنا باشید کافی نیست. منتهی بنده اون حرف رو از این جهت زدم که ما دانش کافی برای ایجاد و اضافه کردن انواع امکانات و قابلیت ها به وردپرس رو داریم و وردپرس هم با ساختار سایت ما متناسب هست. ممکنه هر وبسایتی رو نشه با وردپرس پیاده سازی کرد و لازم باشه سراغ cms اختصاصی رفت.

a a
 <?php
$a = 10;
$b = 5;
$op = " * ";
switch ($op) {
 case "+" :
  $result = $a + $b;
  echo $a . " + " . $b . " = " . $result . "";
  break;
   case "-" :
  $result = $a + $b;
  echo $a . " - " . $b . " = " . $result . "";
  break;
 case "*" :
  $result = $a + $b;
  echo $a . " * " . $b . " = " . $result . "";
  break;
 case "/" :
  $result = $a + $b;
  echo $a . " / " . $b . " = " . $result . "";
  break;
 case "%" :
  $result = $a + $b;
  echo $a . " % " . $b . " = " . $result . "";
  break;
 default :
  echo ' Unsupported (Invalid) Operator !';
}
a a

سلام استاد خسته نباشید.سه تا سوال

1- پی اچ پی استورم تنظیماتی نداره که شماره خط ها معلوم باشه ؟

2- توی اون تمرین روزهای هفته من وقتی خروجی رو چاپ میکنم این شکلی میاد :
ط´ظ†ط¨ظ‡
تنظیمات utf-8 رو هم درست کردم ولی باز این شکلیه.

3- مشکل این کد رو نمیتونم پیدا کنم. یعنی اروری نمیده اما خروجیش اینه :
Unsupported (Invalid) Operator !

کدشم زیر آوردم . البته اون قسمت $result = $a + $b; توی همه ی خط های کدی که برای شما فرستادم مشکل داشت یعنی علامت همش + بود که درستش کردم ولی بازم همون خروجی رو میده

لقمان آوند

سلام
1- از مسیر زیر شماره خط ها رو فعال کنید :
Settings | Editor | (General) | Appearance | Show line numbers.
2- انکودینگ فایل utf8 without bom باشه و از تگ متای utf8 هم در صفحتون استفاده کنید .
3- در خط 5 کدی که فرستادید متغیر op مقدار * رو گرفته که دو تا اسپیس اطرافش هست. اون ها رو حذف کنید که دقیقا شبیه همونی باشه که روبروی case ها هست !

a a

سلام مجدد استاد . ممنون اون دو مورد حل شد فقط منظورتون رو از تگ متای utf8 متوجه نشدم. 🙄

لقمان آوند

این تگ html رو بالای صفحه بزارید :

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
علیرضا خوش نیت

سلام / خسته نباشید
استاد من وقتی encoding یه فایل رو utf-8 whitout bom قرار میدم ، عبارات فارسی به هم ریخته میشن
این در حالی هستش که وقتی utf-8 میزارم عبارات فارسی به درستی نمایش داده میشن
به نظرتون مشکل از کجا میتونه باشه ؟؟؟ ❓ ❓ ❓

لقمان آوند

اول کار انکدینگ فایل رو تعین کنید و بعد محتوا بریزید توش. اگر وقتی محتوای فارسی توشه عوض کنید ممکنه این اتفاق بیفته.

علیرضا خوش نیت

من دقیقا همون کار رو هم انجام میدم
اما بازم همچنان کلمات فارسی به هم ریخته هستن …
کلا با utf-8 without bom این مشکل هست و با utf-8 این مشکل حل میشه

لقمان آوند

عجیبه.
تو نوتپد++ هم همینطوره؟

arman zarei

با سلام و خسته نباشید . ببخشید یه سوال از حضورتون داشتم . می خواستم بپرسم که در این دوره آموزش ساختن فرم ثبت نام و لوگین کاربر رو هم خواهیم داشت ؟

لقمان آوند

بله در اواخر دوره هست .

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل