Η εντολή while (όσο)
Ο απλούστερος βρόγχος στην php είναι η βρόγχος «while». Η σύνταξη του βασίζεται σε μια συνθήκη, παρόμοια με την εντολή «if». Η διαφορά τους είναι ότι η «if» εκτελεί μόνο μια φορά το τμήμα κώδικα που την αφορά, ενώ η «while» για όσο είναι αληθής η συνθήκη της.
Γενικώς η «while» χρησιμοποιείται σε περιπτώσεις που δεν γνωρίζουμε για πόσες επαναλήψεις θα απαιτηθούν για να γίνει η συνθήκη ψευδής. Ορίζουμε την μεταβλητή που αντιπροσωπεύει τον μετρητή, πριν από το «while», όπως επίσης δεν ξεχνάμε να αυξήσουμε η μειώσουμε τον μετρητή μέσα του.
Ο τρόπος σύνταξης έχει ως εξής:
while(συνθήκη){
... εντολές που θα εκτελεστούν ...
}
Όπου «συνθήκη», η συνθήκη που θέλουμε για όσο ισχύει να επαναλαμβάνονται οι «... εντολές που θα εκτελεστούν ...».
Ας υποθέσουμε πως εισάγουμε έναν αριθμό και θέλουμε από το 1 έως και τον αριθμό που θα εισάγουμε, να τυπώσει κατά σειρά όλους τους αριθμούς.
<form method='get' action='numbers.php'>
Εισάγετε έναν αριθμό: <input type='text' name='number'/>
<br />
<input type='submit' value='Αποστολή'/>
</form>
<?php
$arithmos=$_GET['number'];
$i=1;
while($i<=$arithmos){
echo $i."\n";
$i++;
}
?>
Η εντολή do while (κάνε, όσο)
Το «do-while» είναι ένα είδος βρόγχου το οποίο εκτελείται τουλάχιστον μία φορά πριν αρχίσει να επαναλαμβάνεται ελέγχοντας αν ισχύει η συνθήκη του. Αυτό γίνεται γιατί ο έλεγχος της συνθήκης γίνεται στο τέλος και όχι στην αρχή κάθε επανάληψης, επομένως εκτελείται τουλάχιστον μία φορά. Ο τρόπος σύνταξης έχει ως εξής:
do{
... Εντολές που εκτελούνται...
}while(συνθήκη);
- Όπου «... Εντολές που εκτελούνται...» πηγαίνουν οι εντολές πού θέλουμε να εκτελεστούν τουλάχιστον μία φορά και ύστερα κατ’ επανάληψη,
- Όπου «συνθήκη» πηγαίνει η συνθήκη που θέλουμε να ελέγξουμε στο τέλος, και ύστερα σε κάθε επανάληψη.
<form method='get' action='numbers.php'>
Εισάγετε έναν αριθμό: <input type='text' name='number'/>
<br />
<input type='submit' value='Αποστολή'/>
</form>
<?php
$arithmos=$_GET['number'];
$i=1;
do{
echo $i."\n";
$i++;
}while($i<=$arithmos);
?>
Στο παραπάνω παράδειγμα, παρόλο που εισάγαμε 0 για αριθμό βάση του οποίου θα ξεκινήσει η μέτρηση, τυπώθηκε ο αριθμός «1» που σημαίνει ότι εκτελέσθηκε ο βρόγχος τουλάχιστον μία φορά χωρίς να λάβει υπόψη την συνθήκη.
Η εντολή for (για)
Στην ζωή μας καθημερινά εμφανίζεται μια φυσική διαδικασία ή μια υποχρέωση η οποία είναι επαναλαμβανόμενη . Ένα φυσικό παράδειγμα είναι η έμμηνος ρύση, ή οι εποχές της γης. Ένα παράδειγμα υποχρέωσης θα μπορούσε να ήταν η χρήση ενός χαπιού σε καθημερινή βάση.
Η δομή επανάληψης «for» αναλαμβάνει να κάνει κάτι επαναλαμβανόμενα για όσο ισχύει κάποια συνθήκη, π.χ. όσο υπάρχουν χάπια στο κουτί, για τόσο ο ασθενής θα επαναλαμβάνει καθημερινή χορήγηση. Η σύνταξη της for έχει ως εξής:
for(εντολή 1;συνθήκη;εντολή 2){
// Εντολές που εκτελούνται σε κάθε επανάληψη
}
- Όπου «εντολή 1» μια εντολή όπου εκτελείται μία φορά μόνο στην αρχή όταν πρώτο μπει το script στον βρόγχο. Εδώ συνήθως ορίζεται ένας μετρητής.
- Όπου «συνθήκη» είναι η συνθήκη που θα ελέγχεται σε κάθε επανάληψη πριν μπει στην επανάληψη. Εδώ συνήθως ελέγχεται η τιμή του μετρητή.
- Όπου «εντολή 2» είναι μια εντολή όπου εκτελείται σε κάθε τέλος της κάθε επανάληψης. Εδώ συνήθως αυξάνεται ή μειώνεται η τιμή του μετρητή.
Ας υποθέσουμε πως εισάγοντας δυο αριθμούς θέλουμε να υπολογίσουμε για τον πρώτο το αποτέλεσμα του υψωμένο στον δεύτερο.
<form method='get' action='power.php'>
Εισάγετε τον αριθμό: <input type='text' name='num'/>
<br />
Εισάγετε την δύναμη: <input type='text' name='nump'/>
<br />
<input type='submit' value='Αποστολή'/>
</form>
<?php
$arithmos = $_GET['num'];
$dinami = $_GET['nump'];
$result=1;
for($i=1;$i<=$dinami;$i++){
$result=$result*$arithmos;
}
echo "Το αποτέλεσμα της πράξης ".$arithmos."^".$dinami.", είναι: ".$result;
?>
Η εντολή foreach (για κάθε)
Το «foreach» είναι μια δομή επανάληψης για διάσχιση πίνακα χωρίς μετρητές. Η δομή αυτή ξεκινά την επανάληψη παίρνοντας το πρώτο στοιχείο του πίνακα εκτελώντας όλες τις εντολές που βρίσκονται στην επανάληψη του και ομοίως ακολουθεί μέχρι να φτάσει στο τελευταίο του. Η διάσχιση γίνεται χρησιμοποιώντας τις τιμές που περιλαμβάνει ο πίνακας μέσα στις αντίστοιχες θέσεις ή και σε μερικές περιπτώσεις αν το ζητήσουμε μπορούμε να συμπεριλάβουμε και τους δείκτες (κλειδιά) των εκάστοτε θέσεων. Οι πίνακες επεξηγούνται αναλυτικά σε επόμενο κεφάλαιο.
<?php
$pinakas = array("Φασόλια","Μπρόκολο","Κουνουπίδι");
foreach($pinakas as $value){
echo $value."<br/>";
}
echo "<br/><hr/><br/>";
foreach($pinakas as $key => $value){
echo "Κλειδί =>".$key.", Τιμή: ".$value."<br/>";
}
?>
Όπως παρατηρούμε υπάρχουν δυο αποτελέσματα καθότι δύο και τα «foreach» μας. Στο πρώτο «foreach» εκτελούμε διάσχιση του πίνακα «$pinakas» χωρίς να ζητάμε να δοθούν και τα κλειδιά μαζί με τις τιμές. Στο δεύτερο «foreach» ζητάμε αυτή την αλλαγή δίνοντας το κάθε κλειδί σε μια μεταβλητή «$key». Έτσι μπορούμε να χρησιμοποιήσουμε και τα δυο, κλειδί και τιμή, κατά την διάρκεια της διάσχισης. Αυτό χρησιμεύει ιδιαίτερα όταν το κλειδί δεν είναι αριθμημένη σειρά από το 0 έως το μήκος του πίνακα (μείον ένα), αλλά κείμενο όπως «όνομα», «επώνυμο», κτλ.