Η εντολή if (εάν)

Η εντολή «if» είναι η δομή απόφασης η οποία απαντά στο αν ισχύει ή δεν ισχύει μια συνθήκη μέσα σε αυτήν, έτσι μπορούμε να ελέγχουμε την ροή ενός προγράμματος

Ας θεωρήσουμε μια ηλιόλουστη ημέρα του χειμώνα πως θέλουμε να βγούμε έξω για βόλτα. Το κριτήριο απόφασης για το αν θα πάρουμε μαζί μας μπουφάν είναι αν η θερμοκρασία είναι κάτω από 20 βαθμούς Κελσίου.

Η λέξη «εάν» είναι η λέξη κλειδί στην χρήση της «if». Εάν ισχύει κάτι, τότε κάνε κάτι γι αυτό. Πχ… αν ισχύει ότι ο βαθμός του μαθήματος είναι μεγαλύτερος ή ίσος του 5 τότε ο φοιτητής πέρασε το μάθημα. Η δομή της έχει ως εξής: 

if(συνθήκη){
  …εντολές που εκτελούνται μόνο αν ισχύει η συνθήκη….
 }

Για το παραπάνω παράδειγμα με την θερμοκρασία έχουμε:

<form method='get' action='jacket.php'>
    Γράψτε την θερμοκρασία που υπάρχει αυτή την στιγμή:
    <input type='text' name='thermokrasia' />
    <input type='submit' value='Αποστολή' />
</form>
<?php
 $thermokrasia = $_GET['thermokrasia'];
 if($thermokrasia<20){
  echo "Πρέπει να πάρεις μπουφάν.";
 }
?>

Η εντολή if μπορεί να συμπεριληφθεί μέσα σε μια άλλη if δημιουργώντας μια σειρά από ερωτήσεις. Για παράδειγμα να εκτελείται ένα κομμάτι εντολών μόνο εφόσον πληρούνται κάποιες προϋποθέσεις, όπως το να μπορέσει κάποιος να κάνει την πτυχιακή του εργασία θα πρέπει να έχει περάσει 25 μαθήματα και να βρίσκεται στο 8ο εξάμηνο σπουδών του.

<form method='get' action='thesis.php'>
 Πόσα μαθήματα έχει πέρασει; 
 <br />
 <input type='text' name='lessons'/>
 <br />
 <br />
 Σε τι εξάμηνο βρίσκεσαι; 
 <br />
 <input type='text' name='semester'/>
 <br />
 <input type='submit' value='Αποστολή'/>
</form>
<?php
 $eksamhno = $_GET['semester'];
 $mathimata = $_GET['lessons'];
 if($mathimata>=25){
  if($eksamhno>=8){
   echo "Μπορείς να πάρεις πτυχιακή εργασία!";
  }
 }
?>

Το παραπάνω παράδειγμα θα μπορούσε να γραφτεί διαφορετικά χρησιμοποιώντας λογικούς τελεστές :

<?php
 $eksamhno = $_GET['semester'];
 $mathimata = $_GET['lessons'];
 if($eksamhno>=8 && $mathimata >=25){
  echo "μπορείς να πάρεις πτυχιακή εργασία!";
 }
?>

Η εντολή else (αλλιώς) και elseif (αλλιώς εάν)

Το «else» χρησιμοποιείται όταν κάποιος θέλει να λάβει υπόψη του όλες τις άλλες περιπτώσεις εκτός από αυτή που ελέγχει εκείνη την στιγμή. Δηλαδή στο παράδειγμα της ηλιόλουστης ημέρας του χειμώνα, θα μπορούσε να συμπεριληφθεί ένα αποτέλεσμα στην περίπτωση που η θερμοκρασία ήταν σε οποιοδήποτε άλλο επίπεδο θερμοκρασίας, π,χ.

<form method='get' action='jacket.php'>
 Γράψτε την θερμοκρασία που υπάρχει αυτή την στιγμή:
 <input type='text' name='temperature' />
 <input type='submit' value='Αποστολή' />
</form>
<?php
 $thermokrasia = $_GET['temperature'];
 if($thermokrasia<20){
  echo "Πρέπει να πάρεις μπουφάν.";
 } else {
  echo "Δεν χρειάζεται να πάρεις μπουφάν.";
 }
?>

Έτσι με το παραπάνω παράδειγμα καλύπτουμε την περίπτωση που η θερμοκρασία μπορεί να είναι κάτω από 20 βαθμούς κελσίου, και επομένως θα πρέπει να πάρουμε μπουφάν, αλλά επίσης καλύπτουμε όλες τις υπόλοιπες περιπτώσεις όπου η θερμοκρασία θα μπορούσε να είναι 20 ή και πάνω από 20 βαθμούς κελσίου και στην προκειμένη δεν θα χρειαζόταν να πάρουμε μπουφάν.

Συμπεριλαμβάνοντας έτσι το «else», βοηθάμε διευκρινίζοντας το τι γίνεται σε όλες τις άλλες περιπτώσεις, από αυτή που το πρόγραμμα μας θα εκτελούσε ένα ευτυχές σενάριο. Αν το πρόγραμμα μας ήταν να μας υποδεικνύει πότε να πάρουμε μπουφάν με βάση την θερμοκρασία του περιβάλλοντος, τότε το να συμπεριλάβουμε το πότε ΔΕΝ χρειάζεται να πάρουμε μπουφάν, είναι προφανώς κάτι που απαιτείται καθώς ένας απλός χρήστης του προγράμματος δεν θα καταλάβει ότι το πρόγραμμα «λειτουργεί» αν δεν του εμφανίσει τίποτα ως αποτέλεσμα.

Τι γίνεται όμως όταν θέλουμε να διακρίνουμε αυτή την διαφορά σε περισσότερα μέρη ;

Ας θεωρήσουμε πως μπουφάν φοράμε από τους 15 βαθμούς Κελσίου και κάτω. Από τους 15 έως τους 22 παίρνουμε ζακέτα, και από 22 και πάνω δεν παίρνουμε τίποτα.

<form method='get' action='jacket.php'>
 Γράψτε την θερμοκρασία που υπάρχει αυτή την στιγμή:
 <input type='text' name='temperature' />
 <input type='submit' value='Αποστολή' />
</form>
<?php
 $thermokrasia = $_GET['temperature'];
 if($thermokrasia<15){
  echo "Πρέπει να πάρεις μπουφάν.";
 } elseif($thermokrasia>15 && $thermokrasia<22) {
  echo "Πρέπει να πάρεις ζακέτα.";
 } elseif($thermokrasia>=22){
  echo "Δεν χρειάζεται να πάρεις μπουφάν ή ζακέτα.";
 }
?>