Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Instrukcja elseif

środa,

Instrukcja elseif

W przypadku potrzeby warunkowego wykonania kodu przewidującego możliwych wiele wariantów doskonale może sprawdzić się instrukcja elseif. Słowo kluczowe elseif należy rozumieć jako „w przeciwnym wypadku, jeśli...”. Po wystąpieniu pierwszego warunku zwracającego prawdę pozostałe warunki są ignorowane.

<?php
  $plec = 'M';
  
  if($plec == 'M') {
	  echo 'mężczyzna';
  } elseif($plec == 'K') {
      echo 'kobieta';
  } else {
	  echo 'błędne dane';
  }
  
  // wyświetlony napis: mężczyzna
?>

W prezentowanym przypadku stosowanie słowa kluczowego elseif zamiennie z wyrażeniem „else if” nie zmienia efektu działania skryptu, jednak różni się sposobem wykonania. Aby przedstawić różnicę, w komentarzu zaprezentowano inaczej sformatowany kod, zagnieżdżona konstrukcja if-else traktowana jest jako jedna instrukcja, nawias klamrowy otworzony po pierwszym else jest zbędny i ma tylko poprawić czytelność. Choć nie wpływa to zbytnio na wydajność, lepiej jest stosować elseif. Stwierdzenie to jest zgodne z rekomendacjami zawartymi w PHP Standard Recommendation (PSR).

<?php
  $plec = 'M';
  
  if($plec == 'M') {
	  echo 'mężczyzna';
  } else if($plec == 'K') {
      echo 'kobieta';
  } else {
	  echo 'błędne dane';
  }

/*
  if($plec == 'M') {
	  echo 'mężczyzna';
  } else {
      if($plec == 'K') {
          echo 'kobieta';
      } else {
	      echo 'błędne dane';
      }
  }
*/
?>

Podobnie jak w przypadku if oraz if-else, jeśli warunkowo ma być wykonana tylko jedna instrukcja, nawiasy klamrowe są zbędne.

<?php
  $plec = 'M';
  
  if($plec == 'M') echo 'mężczyzna';
  elseif($plec == 'K') echo 'kobieta';
  else echo 'błędne dane';
?>

W kolejnym przykładzie założono, że dane będą prawidłowe. Pozwoliło to pokazać, że zarówno else, jak i elseif są opcjonalne. W przypadku prezentowanego problemu lepsze jest drugie rozwiązanie, ponieważ nie występuje w nim drugi warunek.

<?php
  $plec = 'M';

  // poprawnie składniowo
  
  if($plec == 'M') {
	  echo 'mężczyzna';
  } elseif($plec == 'K') {
      echo 'kobieta';
  }

  // lepszy sposób
  
  if($plec == 'M') {
	  echo 'mężczyzna';
  } else {
	  echo 'kobieta';
  }
?>

W jednej konstrukcji warunkowej można zamieścić wiele instrukcji elseif.

<?php
$x = 'ti';

if($x == 'tr') {
	echo 'technik reklamy';
} elseif($x == 'tm') {
	echo 'technik mechanik';
} elseif($x == 'ti') {
	echo 'technik informatyk';
} elseif($x == 'tps') {
	echo 'technik pojazdów samochodowych';
} elseif($x == 'tpm') {
	echo 'technik przetwórstwa mleczarskiego';
}
?>
Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły