جدیدترین مطالب

» PHP » آموزش زبان PHP – جلسه پنجم ( آرایه های سوپر گلوبال، عبارات شرطی و دستور if)
 50 بازدید

آموزش زبان PHP – جلسه پنجم ( آرایه های سوپر گلوبال، عبارات شرطی و دستور if)

آرایه های سوپر گلوبال، عبارات شرطی و دستور if در PHP   در سری مقالات آموزش پی‌اچ‌پی در کنکاش تقریبا پایه‌ کار برای کدنویسی کاربردی‌تر را یاد گرفته‌اید. در این جلسه می‌خواهیم با مفهوم آرایه های سوپر گلوبال و کدنویسی شرطی را به شما آموزش دهیم و یاد بگیریم که چگونه شرایط مختلف را در پروژه‌های خود […]

آموزش زبان PHP – جلسه پنجم ( آرایه های سوپر گلوبال، عبارات شرطی و دستور if)

آرایه های سوپر گلوبال، عبارات شرطی و دستور if در PHP

 

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

 

آرایه های سوپر گلوبال

آرایه ها یک قسمت مهم از PHP هستند. شما از آرایه ها خیلی استفاده خواهید کرد به خصوص برای ذخیره کردن جزئیات تصاویر به منظور نمایش یک تصویر تصادفی روی یک صفحه وب.

به علاوه آرایه ها در بانک های اطلاعاتی نیز بسیار استفاده می شوند. در این حالت نتایج یک جستجو در یک سری آرایه ذخیره می شود.

آرایه های داخلی سوپر گلوبال PHP دارای چند آرایه داخلی است که به صورت خودکار برای اطلاعات خاصی مورد استفاده قرار می گیرند.

این نوع آرایه، آرایه های سوپر گلوبال (Superglobal) نامیده می شوند و نام آنها با یک علامت دلار و سپس یک خط زیر شروع میشود.

دو موردی که زیاد با آنها برخورد خواهید کرد عبارتند از POST_$ و GET_$.

آنها حاوی اطلاعات داده شده از فرمها روی متدهای post و get برای پروتکل( Hypertext Transfer Protocol HTTP) هستند.

سوپر گلوبال ها آرایه های وابسته هستند و کلیدهای POST_$ و GET_$ به صورت خودکار از نام این عناصر به دست می آیند.

فرض کنید یک فیلد ورودی متن با نام address در یک فرم داریم؛ وقتی فرم توسط متد post ارسال میشود PHP به صورت خودکار یک عنصر آرایه با نام [ POST[address _$ و وقتی توسط متد get ارسال میشود یک آرایه [GET[address _$ ایجاد می کند.

همانطور که در شکل زیر نشان داده شده، [ POST [address _$ حاوی مقداری است که یک بازدید کننده در یک فیلد متنی وارد کرده که به شما اجازه میدهد آن را روی صفحه نشان داده، درون یک بانک اطلاعاتی ذخیره کرده، آن را به ایمیل خود ارسال کنید یا هر کاری که دوست دارید انجام دهید.

فرم ثبت اطلاعات

اطلاعات وارد شده در قسمت انتقادات و پیشنهادات به صورت زیر ارسال می شود:

$_GET[‘address’]=’کنکاش سایت شما’

 

نکته :

فراموش نکنید که PHP به بزرگی و کوچکی حروف حساس است. تمام آرایه های سوپر گلوبال به صورت حروف بزرگ نوشته می شوند. به عنوان مثال Post_$ یا Get_$ کار نمی کنند.

 

عبارات شرطی و دستور if

گاهی در برنامه نویسی شرایط پیش‌ آمده را باید بتوانید پیش‌بینی و کنترل کنید.

به عنوان مثال اگر کاربر هر نوع ورودی را وارد کرد، باید بدانید که چه عملیاتی بر روی ورودی انجام شود و تا نتیجه مورد نظر به وی نمایش داده شود. این اصول ساده عبارت شرطی در پی‌اچ‌پی است!

نکته:

همیشه سعی کنید یک الگورتیم مناسب را پیش از شروع کدنویسی در مورد پروژه مد نظرتان آماده کنید.

ما در اینجا نمی‌خواهیم وارد مبحث الگورتیم شویم اما طرح کلی پروژه همراه با پیش‌بینی‌ شرایط مختلفی که ممکن است رخ دهد را الگوریتم می‌گوییم.

باز هم اشاره می‌کنیم که این تعریف صرفا به منظور فهم بهتر افراد تازه وارد به دنیای پی‌اچ‌پی است و بنابراین زیاد به جزئیات آن توجه نکنید.

بهتر است کمی در مورد الگوریتم نویسی و اصول آن در گوگل جستجو کنید پیش از  هر پروژه، ترجیحا الگورتیم آن را آماده کنید.

 

دستور شرطی If

همانند تمامی زبان‌های برنامه‌نویسی، دستور شرطی if یکی از مهم‌ترین دستورهایی است که باید آن را یاد بگیرید.

بعید به نظر می‌رسد در یک پروژه به دفعات از این دستور استفاده نکنید و همواره یکی از پر استفاده‌ترین و البته کاربردی‌ترین ابزارها برای کنترل شرایط مختلف در کدنویسی محسوب می‌شود.

همانطور که در بالا اشاره کردیم، کنترل شرطی به کامپایلر پی‌اچ‌پی می‌گوید که اگر (if) شرایط خاصی رخ داد آنگاه کدام عملیات را باید انجام داد.

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

برای استفاده از این دستور ابتدا if را نوشته و سپس در پرانتز مقابل آن شرط مورد نظر را می‌نویسیم و در نهایت قطعه کدی که در صورت صحیح بودن شرط قرار است اجرا شود را بین علامت } و { می‌نویسیم.

به قطعه کد مثال زیر دقت کنید: (برای استفاده و اجرای این مثال مانند قبل xampp را اجرا کنید و یک فایل php جدید را با نام دلخواه بر اساس آمورش‌های جلسات قبل ایجاد کنید. سپس کدهای زیر را در آن فایل نوشته و نتیجه را در مرورگر تست کنید.)

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

در صورتی که شرط داخلی پرانتز برقرار باشد، کدی که بین } و { قرار گرفته اجرا خواهد شد و در غیر اینصورت هیچ کدی اجرا نمی‌شود. از آنجا که شرط کد بالا برقرار است و نتیجه آن true است، پس کد بین براکت‌ها اجرا خواهد شد و بنابراین عبارت you will go to kankash در مرورگر کاربر نمایش خواهد یافت.

اما بگذارید شرط را تغییر دهیم تا این بار برقرار نباشد و در نتیجه False را برگرداند.

از آنجا که مقدار متغیر var2 در کد بالا برابر با kankash نیست پس شرط داخل پرانتز نتیجه false را بر می‌گرداند و در نتیجه کدی که بین } و { قرار گرفته این بار اجرا نمی‌شود.

 

کنترل بیشتر شرط با else

مثال‌های بالا در واقع ساده‌ترین شرکت استفاده از دستور شرطی if بودند. اما می‌توانیم این دستور را در حالت پیشرفته‌تری نیز بکار ببریم. مثلا بگوییم اگر شرط مورد نظر برقرار بود یک کد و اگر شرط برقرار نبود کد دیگری اجرا شود. برای این منظور باید از else نیز در دستور if استفاده کنیم. به مثال زیر توجه کنید:

همانطور که می‌بینید استفاده از else بسیار آسان است و کافی است آن را در دنباله دستور if بنویسیم و شرط مورد نظر برای شرایطی که عبارت مقابل if برقرار نباشد را بین در این بخش وارد کنید.

در کد بالا ابتدا توسط دستور if بررسی می‌کنیم که آیا مقدار متغییر var1 برابر با kankash است یا خیر.

اگر شرط برقرار بود عبارت you will go to kankash در مرورگر کاربر نمایش خواهد یافت و اگر شرط برقرار نبود، کدی که در بخش else قرار داده شده اجرا می‌شود که در اینجا عبارت you will not go to kankash است.

حالا یک تمرین برایتان داریم! در کد بالا چون شرط برقرار است، مشخصا عبارتی که در مرورگر نمایان می‌شود you will go to kankash خواهد بود. شما کد را به نحوی تغییر دهید که شرط برقرار نباشد و عبارت you will not go to kankash در مرورگر نمایان شود.

روش کلی و استاندارد استفاده از if به همین سادگی بود که خدمتتان توضیح دادیم. اما می‌توان از if به صورت مختصرتر و کاربردی‌تری هم استفاده کرد که فعلا کاری با آن روش‌ها نداریم چراکه قصد ما ارائه روش آموزشی بسیار ساده و به دور از پیچیدگی است. در ادامه دروس و در مثال‌های کاربردی‌تر و عملی‌تر با این حالات مختلف هم آشنا خواهید شد.

گفتیم که در عبارات شرطی که در دستور if بکار می‌بریم همیشه دو حالت بیشتر پیش نمی‌آید: یا شرط برقرار است که در این حالت مقدار true را بر می‌گرداند یا شرط برقرار نیست که در این حالت مقدار false را بر می‌گرداند.

در برخی مواقع در کدنویسی شرایطی پیش‌ می‌آید که نیاز دارید از این نکته با یک روش بسیار آسان بهره ببرید. ابتدا طبق معمول توجه شما را به مثال زیر جلب می‌کنیم و در ادامه آن را به طور دقیق مورد بررسی قرار می‌دهیم:

حتما تعجب کرده‌اید که چرا به جای نوشتن یک شرط در مقابل دستور if فقط نام متغییر x را آورده‌ایم.

بنظر شما نتیجه اجرای کد بالا چه خواهد بود؟

اگر نکات گفته شده را بخوبی فرا گرفته باشید باید بدانید که نتیجه کد بالا چاپ عبارت we are ture! در مرورگر خواهد بود.

اما چرا؟

گفتیم هدف از شرطی که در پرانتز نوشته می‌شود نهایتا به دست آمدن یک true یا false یا همان صحیح و غلط بودن است.

از آنجا که مقدار متغییر x را true تعیین کرده‌ایم پس دستور if کاری به هیچ چیز ندارد جز خروجی که در این مثال خروجی متغییر x همان true است و در این حالت شرط برقرار بوده و در نتیجه we are true چاپ می‌شود.

اما اگر به جای x در شرط دستور بالا y را قرار دهیم چه می‌شود؟ عبارت بخش else یعنی we are false! در مرورگر نمایان خواهد شد.

 

کنترل چند عبارت شرطی با else if

اما باز هم می‌توان دستور if را پیشرفته‌تر از این هم مورد استفاده قرار داد.

فرض کنید در پروژه خود با شرایطی مواجه شده‌اید که باید چند حالت مختلف را بررسی کنید و در صورتی که هر کدام از شرایط مورد نظر برقرار بود کد خاصی اجرا شود.

در اینجا دو سناریو یا به اصطلاح برنامه‌نویس‌ها، دو سولوشن (solution) یا همان راه‌حل اصلی برای این منظور وجود دارد.

اول اینکه برای هر شرایطی یک دستور if  جداگانه بنویسیم و دوم اینکه یک دستور if چند شرطه را مورد استفاده قرار دهیم.

در پی‌اچ‌پی می‌توانید چندین شرط را به صورت همزمان با یک دستور if بررسی کنید.

بدین منظور دقیقا مانند else باید از دستور else if استفاده کنید با این تفاوت که این بار در مقال else if هم می‌توانید مثل if اصلی شرط تعیین کنید.

البته دستورات دیگری نیز برای بررسی چند شرط وجود دارند و اصولا در php برای هر مسئله‌ای تعداد زیادی روش وجود دارد. به کد زیر توجه کنید:

مثال بالا را به نوعی می‌توان حالت استاندارد استفاده از دستور کامل if دانست.

در ابتدا سه متغییر معرفی و مقدار دهی شده‌اند. سپس با دستور if شرط اول را بررسی می‌کنیم که اگر مقدار متغییر site1 برابر با kankash بود عبارت site is kankash چاپ شود.

سپس شرط دیگری را با else if بررسی می‌کنیم و می‌گوییم اگر متغییر site1 برابر با hasan بود عبارت site is hasan چاپ شود.

در نهایت شرط سومی را نیز مجددا با دستور else if بررسی کرده‌ایم که اگر site1 برابر با masoud بود، عبارت site is masoud چاپ شود.

سپس در آخر با استفاده از دستور else به پی‌اچ‌پی اعلام می‌کنیم که در صورت برقرار نبودن هیچکدام از این شرط‌ها عبارت site is not in list در مرورگر چاپ خواهد شد.

 

استفاده از if به صورت تو در تو

دستور if را می‌توانید به صورت تو در تو نیز استفاده کنید.

با بزرگ‌تر شدن پروژه‌ها رفته رفته نیاز به استفاده از if به صورت تو در تو خواهید داشت.

همچنین برای ساده سازی برخی کارها می‌توان به صورت زیرکانه از if های تو در تو بهره گرفت. البته چون فعلا نیازی به استفاده از چنین حالتی نداریم و نیز نمی‌خواهیم مبحث را سنگین‌تر کنیم برای این حالت در حال حاضر یک مثال ساده می‌آوریم و در بخش‌های پیشرفته‌تر و انجام کدنویسی برای تمرینات عملی، بیشتر با این حالات و تکنیک‌ها آشنا خواهید شد.

سعی کنید کد بالا را ابتدا خودتان تحلیل کنید.

در ابتدا دو متغییر تعریف و مقدار دهی شده‌اند.

سپس در شرط اول بررسی می‌کنیم که آیا متغییر fname برابر با hasan است یا خیر.

در صورتی که شرط برقرار نباشد کد بخش else اجرا خواهد شد و در صورتی که درست باشد پی‌اچ‌پی به سراغ if دوم می‌رود و سپس در این if جدید بررسی می‌کنیم که آیا متغییر lname برابر با oveisi است یا نه.

اگر این شرط هم برقرار باشد در نهایت عبارت your full name is hasan oveisi در مرورگر نمایان خواهد شد.

این حالت ساده استفاده از if تو در تو بود ولی همانطور که اشاره کردیم پی‌اچ‌پی آنقدر دست توسعه دهنده را باز می‌گذارد که برای انجام هر کاری می‌توان از روش‌ها و سولوشن‌های ابتکاری و پیش‌فرض زیادی بهره برد.

 

بررسی چند شرط به صورت همزمان

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

بیایید ثابت کنیم پی‌اچ‌پی چرا انقدر محبوب است! خب مثال بخش قبلی را به خاطر بیاورید که دو شرط را به صورت تو در تو بررسی کردیم. می‌توان کد بالا را به این صورت هم نوشت:

اگرچه کد بالا نسبت به مثال قبلی بسیار خلاصه‌تر و خواناتر است اما نتیجه کار یکی است!

یکی از دلایل لذت بخش بودن برنامه نویسی با پی‌اچ‌پی همین موارد است! در جلسه قبلی با عبارات کنترلی آشنا شدید و حالا در این مثال از آن‌ها کمی استفاده کردیم.

در دستور if می‌توانید هر چقدر که دلتان می‌خواهد شرایط مختلف را به صورت همزمان با هم بررسی کنید.

در کد بالا دو شرط به صورت همزمان بررسی می‌شوند و در صورتی که هر دو درست باشند، عبارت your full name is hasan oveisi چاپ خواهد شد و در غیر این صورت هم که دیگر خودتان می‌دانید!

البته چون در بین دو شرط نوشته شده عبارت && را قرار داده‌ایم وضعیت به این صورت پیش‌ می‌رود چراکه && در صورتی true را بر می‌گرداند که هر دو طرف آن با هم برابر باشند.

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

دیدید که با استفاده از دستور if می‌توان شرایط مختلف و وضعیت‌های گوناگون را در برنامه نویسی با php پیش‌بینی و کنترل کرد.

برای فراگیرفتن هرچه بهتر این مبحث سعی کنید برای خود چند مثال ایجاد کنید. چند شرط را در نظر بگیرید و برای آن کد بزنید! سعی کنید از آرایه‌ها نیز استفاده کنید.

همچنین چند شرط را در دستور if بکار بگیرید تا بخوبی این مبحث را هم درک کنید.

اگر سوالی در مورد هر یک از مباحث مطرح شده داشتید، آن را در بخش دیدگاه‌ها بپرسید. ما و سایر کاربران کنکاش حد توان پاسخ شما را خواهیم داد.

شما هم تجربیاتتان را با ما در همین قسمت به اشتراک بگذارید.

 

گرداوری : کنکاش

منبع : دیوید استفان و زومیت


برچسب ها : , , , , , , , , , , , , ,
دسته بندی : PHP , آموزشهای برنامه نویسی , جدیدترین مطالب , علم و فناوری
ارسال دیدگاه

تبلیغات
WordPress Image Lightbox Plugin