PHP.if else шартты операторы

25 Қыркүйек 2014

Егер программа кодын жол деп есептесек және PHP интерпретаторын осы жолдағы жолаушы десек, онда осы шартты операторларды жол қиылыстары деп елестетуге болады.Сонда әрбір жол қиылысында интерпретатор әрі қарай қай жолды таңдайтынын өрнек мәніне байланысты шешуі керек.

if операторы.

Бұл оператор шартты операторлардың ішіндегі ең қарапайымы болып есептеледі.

1. Денесі бір нұсқаудан тұратын if операторы:


|

2. Денесі бірнеше нұсқаулардан тұратын if операторы:


Енді бұл оператордың қалай жұмыс істейтініне тоқталайық.

Алдымен if операторы дөңгелек жақша ішіндегі шартты өрнектің мәнін есептейді, сосын егер ол шындық, яғни true болса нұсқау орындалады. Ал егер шартты өрнек өтірік, яғни false болса онда нұсқаулар орындалмайды.Мысал:


Сонымен if операторындағы нұсқау егер тек ондағы өрнек шындық (true) болса ғана орындалады.Бірақ, кей жағдайда шартты өрнек жалған (false) болған жағдайда да қандай да бір әрекеттер жасау керек болады.Міне сондай жағдайда қолданылатын келесі шартты операторымыз былай аталады:

if else операторы.

Оның синтаксисі мынадай:

1. Денесі бір нұсқаудан тұратын if else операторы:


2. Денесі бірнеше нұсқаулардан тұратын if else операторы:


else операторы тек if операторымен бірге гана пайдаланылады және оның нұсқаулары тек if шартты өрнегі жалған болғанда ғана орындалады.Мысал:


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

<?php
  if($i) {               
    if($a) нұсқау;
    if($b) нұсқау; 
    else нұсқау; // бұл else if($b) ке қарайды
  }
  else нұсқау; // бұл else if($i) ке қарайды 
?>

elseif/else if құрылымы.

if else операторы шартты өрнектің мәнін есептеп программа кодының сәйкес бөлігін орындайды.Ал мына elseif/else if бірнеше шартты өрнек мәнін есептеп бір бөлікті ғана орындайды.

Бұл оператор PHP ның өз операторы емес, ол программалаудың бір стильдік әдісі болып табылады.

<?php
  $username = 'Арман'; 
  if ($username == 'Админ') {
    echo 'Администратор парақшасына қош келдіңіз.';
  }
  elseif ($username == 'Қонақ') {
    echo 'Парольды қайта теріңіз!';
  }
  else if ($username == 'Арман') {
    echo "$username Қош келдіңіз!";
  }
  else {
    echo ('Қонақ парақшасына қош келдіңіз');
  } 
?>

Былай қарағанда бұл өзгеше бір құрылым болып көрінуі мүмкін, бірақ егер анықтап қарасақ мұның алдыңғы бір-бірінің ішіне салынған if else операторларынан еш айырмашылығы жоқ.Егер бұл әлі түсініксіз болса, онда сол операторлар ретінде ашып жазып көрсетейін:

<?php
  $username = 'Арман'; 
  if ($username == 'Админ') {
    echo 'Администратор парақшасына қош келдіңіз.';
  }
  else {
    if ($username == 'Қонақ') {
      echo 'Парольды қайта теріңіз!';
    }
    else { 
      if ($username == 'Арман') {
        echo "$username қош келдіңіз !";
      }
      else {
        echo ('Қонақ парақшасына қош келдіңіз');
      }
    }
  }
?>

Тернарлық оператор ( ?: ).

Программа жазу барысында кей кезде шартты оператордағы өрнек мәні шындық (true) болғанда айнымалыға бір мән, өрнек мәні жалған (false) болғанда басқа мән беруге тура келетін жағдайлар туындайды.Мысалы:

<?php 
  if ($foo < 10)
    $min = 20;
  else
    $min = 30;
?>

Практика жүзінде осындай іс-әрекеттер көп қолданылатындықтан оның қысқартылған түрін ойлап шығаруға тура келді.Ол оператор үш операндпен жұмыс істейтіндіктен тернарлық оператор деп аталады және мынадай екі таңбамен ? : белгіленеді.


Енді осы тернарлық операторды пайдаланып жоғарыдағы кодты қайтадан жазып шығайық:

<?php 
  $min = ($foo < 10) ? 20 : 30; 
?>

Яғни бұл мысалда,егер шартты өрнек $foo<10  шындық-true болса, онда $min=20 тең болады, әйтпесе егер $foo<10 шартты өрнегі жалған-false болса онда $min=30 тең болады.

Тернар операторының тағы бір түрі бар, ол бойынша оның ортада тұрған бөлігін жазбай-ақ қоюға болады.Мысалы:

<?php
  $var1 = 15; 
  echo (($var1) ?: 30);
?>

Яғни, бұл оператор бойынша, егер $var1 - шындық-true болса, онда ($var1)?:30 -өрнегі 15 санын экранға шығарады.Ал егер $var1 - жалған-false болса онда экранға 30 саны шығады. 

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

Пікірлер