PHP.switch шартты операторы.

4 Қыркүйек 2014

Кей кезде бірінен кейін бірі орналасқан if else операторларының орнына арнайы құрылым switch-case операторын қолданған қолайлы болады.Бұл оператор айнымалыдан тұратын шартты өрнектің мәнін белгілі бір мәндермен салыстыру нәтижесінде программа кодының бөліктерін орындайды.Бұл мәндерді салыстыру үшін теңестіру (==) операторы қолданылады.

Енді екі оператор if else және switch айырмашылықтарын түсіну үшін мына мысалдарға көз жүгіртейік:|

<?php
  if ($var == 'алма') {
    echo "Бұл тәтті алма.";
  } elseif ($var == 'алмұрт') {
    echo "Мен алмұртты ұнатамын.";
  } elseif ($var == 'шие') {
    echo "Шие кейде өте қышқыл болып келеді.";
  }
 
  switch ($var) {
    case 'алма':
      echo "Бұл тәтті алма.";
      break;
    case 'алмұрт':
      echo "Мен алмұртты ұнатамын.";
      break;
    case 'шие':
      echo "Шие кейде өте қышқыл болып келеді.";
      break;
  } 
?>

Оператор switch шартты өрнек $var -дың мәнін арнайы сөз case -дің қасындағы мәндермен орналасу реті бойынша салыстыра бастайды.Егер теңдік орындалса, онда сол бөлік коды орындалады.Тең мән табылмаса, ешқандай программа бөліктері орындалмайды.

case операторы.

case операторынан кейін қашанда мән жазылады, сосын қос нүкте (:) қойылады.

Және бұл мән мен онымен салыстырылатын шартты өрнектің мәнінің типтері бірдей болуы керек.

case соңындағы нұсқаулар қашан break операторы кездескенше орындала береді.

break операторы.

PHP интерпретаторы арнайы сөз break - ті кездестіргенде switch операторының жұмысын тоқтатып, оның пішінді жабық жақшасынан кейінгі тұрған нұсқауларды орындауға кіріседі.

break операторымен өте мұқият болу керек, себебі ол жоқ болса онда switch операторы шартты өрнектің мәнімен тең болған  case меткасындағы мәнге сәйкес бөлігін орындаған соң break операторын кездестірмесе блоктың соңына дейін орналақан барлық нұсқауларды орындап шығады.

Ондай қателікке ұрынбас үшін әруақытта case бөлігін break операторымен аяқтап отыру керек.Ол жоқ болса не болатынын мына келесі мысалдан көруге болады:

 <?php
    $var = 'алма';
  switch ($var) {
    case 'алма':
      echo "Бұл тәтті алма.";
    case 'алмұрт':
      echo "Мен алмұртты ұнатамын.";
    case 'шие':
      echo "Шие кейде өте қышқыл болып келеді.";
  } 
?>

Бұл скрипт орындалғанда нұсқаулардың барлығы дерлік орындалып, үш сөйлем де экран бетіне шығады.

continue операторы.

Бұл continue операторы break операторына ұқсас әрекет жасайды.

<?php
  switch ($var) {
    case 'алма':
      echo "Бұл тәтті алма.";
      continue;
    case 'алмұрт':
      echo "Мен алмұртты ұнатамын.";
      continue;
    case 'шие':
      echo "Шие кейде өте қышқыл болып келеді.";
      continue;
  } 
?>

Үнсіздік бойынша таңдау.

Егер switch операторы орындалу барысында шартты өрнектің мәні case бөлігіндегі ешқандай мәнге тең болмаса, онда default бөлігіндегі нұсқау орындалатын болады.

<?php
  switch ($var) {
    case 'алма':
      echo "Бұл тәтті алма.";
    case 'алмұрт':
      echo "Мен алмұртты ұнатамын.";
    case 'шие':
      echo "Шие кейде өте қышқыл болып келеді.";
	default:
      echo "Маған жемістің бәрі ұнайды.";  
  } 
?>

default бөлігі switch операторының денесінде ең соңында орналасатын болғандықтан, break операторын жазбай-ақ қоюға болады.Және бұл құрылымда case - default  тан кейін қос нүктенің орнына нүктелі үтірді қолдануға болады. 

Қорытынды.

Сонымен, қай операторды қолданған тиімді: if else/elseif  әлде switch?

switch операторында шартты өрнек бір-ақ рет есептеледі де, сол шыққан мән case бөлігіндегі мәнмен салыстырылады.

Ал if else/elseif операторларында шартты өрнек әр салыстыру сайын есептеледі, сондықтан егер сіздегі қолданып отырған шартты өрнегіңіз күрделі болса, онда әрине switch операторын қолданған дұрыс.

Егер мақала көңіліңізден шықса, онда онымен төмендегі түйме арқылы достарыңызбен бөлісіңіз

Пікірлер