دستور Switch یکی از دستورات کاربردی php است که عملکرد آن در واقع شبیه به if ... else if است.

اگر خاطرمون باشه در جلسات قبل در مورد دستور if و else if صحبت کردیم و گفتیم که برای بررسی شرط ها می‌توان از آنها استفاده کرد. اما در پی‌اچ‌پی دستور دیگری به نام Switch وجود دارد که کار اصلی‌اش بررسی چندگانه شرط‌ها است. حالت استاندارد استفاده از Switch به شرح زیر است:

<?php
$a = 1;

switch ($a)
{
    case "1":
    echo "moteqayer 1 ast";
    break;

    case "2":
    echo "moteqayer 2 ast";
    break;

    default:
    echo "motaqyer 1 va 2 nist";
    break;
    
}
?>

به کد بالا دقت کنیم. ابتدا ما یک متغیر به نام a=1 تعریف کردیم و نسبت داده‌ایم. سپس دستور Switch را نوشته و در پرانتز مقابل آن نام متغیری که از قبل تعریف کردیم را قرار دادیم. سپس به ازای هر شرط از یک دستور case در داخل دستور Switch استفاده کردیم. تا اینجا ما به پی‌اچ‌پی می‌گوییم که هدف ما بررسی مقدار متغیر a است. سپس هر case مانند یک else if عمل می‌کند و ما به پی‌اچ‌پی اعلام کرده‌ایم در صورتی که مقدار متغیر 1 باشد عبارت moteqayer 1 ast چاپ شود و اگر مقدار a عدد 2 بود عبارت moteqayer 2 ast چاپ شود و اگر مقدار a هیچ کدام از مواردی که بررسی شده نبوده، عبارت motaqyer 1 va 2 nist در مرورگر چاپ شود.

به دستور Switch همانند دستور else if نگاه کنید با این تفاوت که در دستور switch بررسی شروط به صورتی است که در بالا مشاهده می‌کنید و از انسجام بهتری برخوردار است. بسیاری از توسعه دهندگان PHP پیشنهاد می‌کنند که اگر در کدنویسی نیاز به بررسی چندین شرط دارید، بهتر است از Switch استفاده کنید چراکه در چنین شرایطی، استفاده از else if برای بررسی شرط‌های زیاد، نسبت به Switch بهینه نیست.

خب پس اصول اصلی و کلی استفاده از Switch را به صورت خلاصه اگر بخواهیم یادآوری کنیم به صورت زیر خواهد بود:

  1. قرار دادن آنچه قصد بررسی مقدارش را داریم (متغیر یا دستوراتی که نهایتا یک خروجی داشته باشند) در پرانتز مقابل دستور Switch
  2. به ازای هر شرط یک دستور case را نوشته و علامت دو نقطه : را در مقابل آن می‌نویسیم.
  3. کد مورد نظر برای شرطی که در مرحله قبل نوشتیم را می‌نویسیم.
  4. با استفاده از عبارت break و سپس قرار دادن علامت نقطه ویرگول ; شرط یاد شده را پایان می‌دهیم
  5. به ازای هر شرط دیگری که قصد بررسی آن را داریم مراحل 2 تا 4 را مجددا تکرار می‌کنیم
  6. همانند مثال بالا، در نهایت شرط Case default را در پایین‌ترین بخش دستور switch می‌نویسیم تا در صورتی که هیچ کدام از شرط‌های نوشته شده برقرار نبود، این دستور اجرا شود.

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

<?php
$userCity = 20;


switch ($userCity)
{
    case "tehran":
    echo "welcome you are from tehran!";
    break;

   case default:
   echo "you are not from tehran!";
   break;

}
?>

در تمرین ها دقت کنید که نوشتن بخش default الزامی نیست ولی به شما پیشنهاد می‌کنیم که در پروژه‌ ها حتما این بخش را هم بکار ببرید چراکه باعث کنترل بهتر شرایط خواهد شد.

معرفی Include و require

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

با استفاده از include می‌توانید محتویات یک فایل دیگر را در فایل مورد نظر خود اضافه کنید. در مسیر پوشه htdocs نرم افزار سرور مجازی xampp و در پوشه مخصوص تمرین خود، پوشه ای ایجاد کنید. در این پوشه سه فایل پی اچ‌ پی به نام‌های head.php و index.php و footer.php ایجاد کنید. ساختار پروژه شما باید شبیه به زیر باشد:

php tuts - mysite project

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

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

در این صورت ساختار پروژه ما از انسجام بیشتری برخوردار خواهد شد و توسعه و عیب یابی آن هم بسیار آسان‌تر می‌شود. اما برگردیم به سراغ پروژه. پس از ایجاد سه فایل یاد شده، ابتدا فایل head.php را باز کنید و کد زیر را در آن قرار دهید:

<!DOCTYPE html>
<html>
<style>
#header {
    background-color:black;
    color:white;
    text-align:center;
    padding:5px;
}
#section {
    padding:10px;
}
#footer {
    background-color:black;
    color:white;
    clear:both;
    text-align:center;
   padding:5px;
}
</style>
</head>
<body>

<div id="header">
<h1>My Site</h1>
</div>

 

 

سپس فایل index.php را باز کرده و کد زیر را هم در این فایل قرار دهید:

<?php
include ("head.php");
?>
<div id="section">
<h2>FaghatLaravel PHP Tuts</h2>
<p>we learning php in FaghatLaravel. php is very powerful for developing any kind of web applications. so we love it!</p>
</div>
<?php
include ("footer.php");
?>

همانطور که در کد ها دیدیم ما در بالا و پایین کد فایل index,php دو دستور ساده پی‌اچ‌پی را بکار برده‌ایم. در بالا کد با دستور include فایل head.php را به ابتدای فایل اضافه کردیم و در پایین نیز فایل footer.php را به کد اضافه می‌کنیم. در این صورت هر تغییری که در فایل‌های head.php یا footer.php اعمال کنیم، در فایل index.php نیز همان تغییرات اعمال خواهد شد.

در نهایت کدهای زیر را در هم در فایل footer.php قرار دهید:

<div id="footer">
Copyright © faghatlaravel.com
</div>
</body>
</html>

حالا مرورگر را باز کرده و این پروژه را تست کنید. اگر طبق مراحل بدرستی پیش رفته باشیم آدرس این پروژه در سرور محلی Xampp شما http://127.0.0.1/php-toturials/07/index.php خواهد بود. اگر این آدرس را اجرا کنید می‌توانید نتیجه نهایی را که باید چیزی شبیه به عکس زیر باشد، مشاهده کنید:

my site php

اگر در مرورگر خود روی صفحه راست کلیک کرده و View Source را انتخاب کنید. کد سورس نهایی تولید شده توسط پی‌اچ‌پی ترکیبی از سه فایلی است که ما ایجاد کردیم. یعنی در فایل index.php به جای دستور include همان فایلی که فراخوانی کردیم به آن بخش از کد اضافه شده است. 

و اما دستور require نیز کارکردی مشابه با include دارد. تنها تفاوت این دستور در نوع بررسی خطاها است. در دستور require همانطور که از نامش هم پیداست، در شرایطی که فایل فراخوانی شده وجود نداشته باشد یا مسیر آن اشتباه باشد، پی‌اچ‌پی خطا نشان خواهد داد.

روش استفاده از این دستور دقیقا مشابه include است. به عنوان مثال در پروژه بالا اگر بخواهیم فایل head.php را با require به فایل index.php اضافه کنیم باید دستور را به شکل زیر بکار ببریم:

<?php
require ("head.php");
?>

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

لاراول
فقط
خوش آمدید!
ایجاد حساب کاربری