اگر با سری پست های اصلاح کد های پی اچ پی آشنایی ندارید و یا سایر قسمت ها را نخوانده اید از اینجا شروع کنید:
توی این پست قصد دارم یک وضعیتی که کلی if و else داریم رو با هم refactor کنیم تا ببینیم چطور میتونیم کد تمیز تری داشته باشیم.
تکه کد زیر رو در نظر بگیرید، اینجا با توجه به ورودی تابع قصد داریم تشخیص دهیم که کدام کد رنگی استفاده شده رو باید برگردونیم و کلی شرط داریم:
if ($input == 'red') { } elseif ($input == 'blue') { return '3b1de5'; } elseif ($input == 'yellow') { return 'ffff00'; } elseif ($input == 'orange') { return 'af9c07'; } elseif ($input == 'black') { return '0c0c0c'; }else{ return 'c41515'; }
البته همان طور که می دونید می تونیم این کد رو با switch هم بنویسم که به صورت زیر می شود:
$response = 'c41515'; switch ($input) { case 'blue': $response = '3b1de5'; break; case 'yellow': $response = 'ffff00'; break; case 'orange': $response = 'af9c07'; break; case 'black': $response = '0c0c0c'; break; } return $response;
اما بریم سراغ تمیز کردن کد تو این شرایط با استفاده از روشی که بهش lookup table می گونید و کافی است ما یک آرایه associative از شروطمون داشته باشیم تا بتونیم به صورت زیر از اون استفاده کنیم:
$mapArray = [ 'blue' => '3b1de5', 'yellow' => 'ffff00', 'orange' => 'af9c07', 'black' => '0c0c0c' ]; if(isset($mapArray[$input]){ return $mapArray[$input]; }else { return 'c41515'; }
همان طور که دیدیم با استفاده از isset چک می کنیم اگه تو آرایه ای که ساختیم مقدار ورودی را داشتیم پس برش می گردونیم در غیر این صورت هم مقدار پیش فرض خودمون رو برمیگردونیم.
لطفا نظرتون رو توی کامنت ها بنویسید تا این سری پست های اصلاح کد های پی اچ پی رو با هم دیگه کامل تر کنیم.
معرفی و مشاهده سایر پست های اصلاح کد های پی اچ پی
راستی لایک هم لطفااااااا یادتون نره :)