ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor
ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται κάθε φορά που επισκεφτόµαστε τη σελίδα. ΟPHP κώδικαςµεταφράζεταιστον web server και παράγει html (ή κάποια άλλη έξοδο) που ο χρήστης µπορεί να δεί.
Τοπρώτοπρόγραµµα first.php <?php?> echo "Hello Web!"; Έξοδος Hello Web! Τα ονόµατα των αρχείων τελειώνουν µε την επέκταση.php Μπορώ να ενσωµατώσω ένα php αρχείο σε ένα html.
Ταδοµικάστοιχείατης PHP Μεταβλητές τι είναι, γιατί τις χρειαζόµαστε και πως τις χρησιµοποιούµε Ορισµός και προσπέλαση µεταβλητών Τύποι εδοµένων Οι τελεστές που χρησιµοποιούνται συχνότερα Χρήση τελεστών για την δηµιουργία εκφράσεων Ορισµός και χρήση σταθερών
Μεταβλητές Μεταβλητήείναιµίαειδικήθέσητηνοποίαορίζουµεγιανα αποθηκεύσουµε µία τιµή. Χωρίς τις µεταβλητές θα έπρεπε να ενσωµατώνουµε στον κώδικα όλες τιςτιµέςπουχρειαζόµαστε. Ονοµασία Μεταβλητών Οιµεταβλητέςέχουντοπρόθεµα $ Ακολουθεί όνοµα της αρεσκείας µας αρκεί να περιέχει οποιοδήποτε συνδυασµό από αριθµούς γράµµατα και το χαρακτήρα _. Τοόνοµαµιαςµεταβλητήςξεκινάµεγράµµαή _. Με τον τελεστή εκχώρησης = δίνουµε τιµή σε µία µεταβλητή. Παραδείγµατα ορισµού έγκυρων και µη έγκυρων µεταβλητών $p; $7269; Μη $h_123_first; $k-r; Έγκυρες έγκυρες $_4583; $my program; $variablename1;
Τύποιµεταβλητών Η php σε αντίθεση µε άλλες γλώσσες προγραµµατισµού δεν είναι αυστηρή σε θέµατα τύπου δεδοµένων. Εξακριβώνει τον τύπο δεδοµένων κάθε φορά που αναθέτουµε τιµή σε µία µεταβλητή. Και η ίδια µεταβλητή µπορεί τη µία φορά να είναι τύπου integer και την άλλη string. Οι standard τύποιδεδοµένωνείναι integer, double, string, Boolean. Τύποι δεδοµένων είναι επίσης και τα arrays και objects. Η συνάρτηση gettype() παίρνει σαν παράµετρο το όνοµα της µεταβλητής και επιστρέφει τον τύπο δεδοµένων της µεταβλητής. Η συνάρτηση settype() αλλάζει τον τύπο δεδοµένων µιας µεταβλητής. Παίρνει σαν παράµετρο το όνοµα της µεταβλητής καιτοντύποδεδοµένωνπουθέλουµεναέχειηµεταβλητή. Ο τύπος δεδοµένων µιας µεταβλητής µπορεί επίσης να αλλάξει µε ρητή δήλωση του τύπου.
Παράδειγµαµετην gettype() <html> <head> <title>τύποςμεταβλητής</title> </head> <body> <p> <?php $variable; // ήλωσηχωρίςανάθεση print gettype($variable); // NULL print "<br />"; $variable = 34; print gettype($variable); // integer print "<br />"; $variable = thirty"; print gettype($variable); // string print "<br />"; $variable = 34.56; print gettype( $variable ); // double print "<br />"; $variable = true; print gettype($variable); // boolean print "<br />";?> </p> </body> <html> Στο παράδειγµα δηλώνω και δίνω τιµές σε µία µεταβλητή και στη συνέχεια χρησιµοποιώ την συνάρτηση gettype() για να πάρω κάθε φορά τον τύπο της µεταβλητής. Αποτέλεσµα NULL integer string double boolean
Παράδειγµαµετην settype() <html> <head> <title> Αλλαγή τύπου µεταβλητής µε την settype()</title> </head> <body><p> <?php $variable = 3.14; print gettype( $variable ); // double print " is $variable<br />"; // 3.14 settype( $variable, string ); print gettype( $variable ); // string print " is $variable<br />"; // 3.14 settype( $variable, int ); print gettype( $variable ); // integer print " is $variable<br />"; // 3 settype( $variable, double ); print gettype( $variable ); // double print " is $variable<br />"; // 3.0 settype( $variable, bool ); print gettype( $variable ); // boolean print " is $variable<br />"; // 1?> </p></body> </html> Στο παράδειγµα δηλώνω µία µεταβλητή και στη συνέχεια χρησιµοποιώ την συνάρτηση settype() για να αλλάξω τον τύπο της µεταβλητής. Αποτέλεσµα double is 3.14 string is 3.14 integer is 3 double is 3 boolean is 1
Παράδειγµααλλαγήςτύπουδεδοµένων µερητήδήλωσητύπουµεταβλητής <html> <head> <title> Ρητή ήλωση τύπου µεταβλητής</title> </head> <body> <p> <?php $var = 3.14; $new_val = ( double ) $var; print gettype( $new_val ) ; // double print " is $new_val<br />"; // 3.14 $new_val = ( string ) $var; print gettype( $new_val ); // string print " is $new_val<br />"; // 3.14 $new_val = ( integer ) $var; print gettype( $new_val ); // integer print " is $new_val<br />"; // 3 $new_val = ( double ) $var; print gettype( $new_val ); // double print " is $new_val<br />"; // 3.14 $new_val = ( boolean ) $var; print gettype( $new_val ); // boolean print " is $new_val<br />"; // 1 echo "original variable type:"; echo gettype($var);?> </p> </body> </html> Στο παράδειγµα γίνεται ρητή δήλωση τύπου µιας µεταβλητής. Με αυτό τον τρόπο πήραµε διάφορα αντίγραφα της τιµής της αρχικής µεταβλητής. Οτύποςτηςαρχικήςµεταβλητήςδενάλλαξε. Αποτέλεσµα double is 3.14 string is 3.14 integer is 3 double is 3.14 boolean is 1 original variable type:double
Τελεστές (operators) Τελεστής είναι ένα σύµβολο (ή περισσότερα) που όταν εφαρµοστούν σε µία ή περισσότερες τιµές δίνουν συνήθως µια νέα τιµή. ιακρίνονται σε: Τελεστής εκχώρησης τιµής Αριθµητικοί τελεστές Τελεστής συνένωσης Σύνθετοι τελεστές εκχώρησης Τελεστές σύγκρισης Λογικοί Τελεστές
Τελεστέςεκχώρησηςτιµήςκαι αριθµητικοίτελεστές Τελεστής εκχώρησης = : εκχωρεί την τιµή του δεξιού τελεστέου στον αριστερό Τελεστής συνένωσης. : ενώνει 2 συµβολοσειρές σε µίαπ.χ. hello. world επιστρέφει hello world Αριθµητικοίτελεστές: πρόσθεση, αφαίρεση, πολ/σµός, διαίρεση, υπόλοιπο (+, -, *, /, %) Μοναδιαίοι αριθµητικοί τελεστές ++, --. Αυξάνουν ή µειώνουν την τιµή του τελεστέου κατά 1. Όταν ο τελεστής προηγείται του τελεστέου διαφοροποιείται πρώτα ο τελεστέος και µετά χρησιµοποιείται διαφορετικά χρησιµοποείται πρώτα και στη συνέχεια αλλάζει η τιµή του. π.χ. $x=5 $y=$x++ + 8; // το $y γίνεται 13 $y=++$x + 8; // το $y γίνεται 14
Σύνθετοιτελεστέςεκχώρησηςτιµής Τελεστής += -= /= *= %=.= Παράδειγµα $x += 5 $x -= 5 $x /= 5 $x *= 5 $x %= 5 $x.= " test" Ισοδυναµία $x = $x + 5 $x = $x - 5 $x = $x / 5 $x = $x * 5 $x = $x % 5 $x = $x." test"
ΤελεστέςΣύγκρισης Τελεστής Επιστρέφει True αν Παράδειγµα ($x = 4) Αποτέλεσµα == Αριστερός τελεστέος ίσο µετοδεξί $x == 5 false!= Αριστερός διάφορος του δεξιού $x!= 5 true === Αριστερός ίσος µε το δεξί και επιπλέον είναι του ίδιου τύπου $x === 5 false > Αριστερός µεγαλύτερος του δεξιού $x > 4 false >= Αριστερός µεγαλύτερος ήίσοςτουδεξιού $x >= 4 true < Αριστερός µικρότερος του δεξιού $x < 4 false <= Αριστερός µικρότερος ή ίσος του δεξιού $x <= 4 true
ΛογικοίΤελεστές Τελεστής Επιστρέφει true αν Παράδειγµα Αποτέλεσµα οαριστερόςήοδεξιόςείναι true true false true or οαριστερόςήοδεξιόςείναι true true false true xor οαριστερόςήοδεξιόςείναι true (όχι και οι δύο) true xor true false && οαριστερόςκαιοδεξιόςείναι true true && false false and οαριστερόςκαιοδεξιόςείναι true true && false false! Ο τελεστέος δεν είναι true!true false
Προτεραιότητατελεστών ++, -- /,*, % +, - <, <=, =>, > ==, ===,!= && =, +=, -=, /=, *=, %=,.= and xor or Οι τελεστές που εµφανίζονται πρώτοι έχουν και την µεγαλύτερη προτεραιότητα. Είναιπροτιµότερο να χρησιµοποιείτε παρενθέσεις αν δεν είστε βέβαιοι για την σειρά προτεραιότητας των τελεστών
Σταθερές Για να ορίσω µία σταθερά χρησιµοποιώ την συνάρτηση define(). Μέσα στηνπαρένθεσηβάζωτοόνοµατηςσταθεράςκαιτηντιµήπουθέλωνα της αναθέσω. Κατά σύµβαση χρησιµοποιώ κεφαλαία γράµµατα για τα ονόµατα των σταθερών. Αν επιπλέον γράψω <?php define ("STUDENT", "Xrhstos", true); print "Welcome ".student;?> µπορώ να προσπελάσω την τιµή της σταθεράς χωρίς να ανησυχώ για κεφαλαίους ή πεζούς χαρακτήρες. Καλόνόµωςθαήτανναγράψωτοπαραπάνω script ωςεξής: <?php define ("STUDENT", "Xrhstos", true); print "Welcome ".STUDENT;?> Τοαποτέλεσµακαιστιςδύοπεριπτώσειςθαείναι: Welcome Xrhstos
Ηεντολή if Η εντολή if αποτιµά µια έκφραση ελέγχου η οποία περικλείεται µέσα σε παρενθέσεις. Εάν η έκφραση είναι αληθής εκτελούνται οι εντολές που ακολουθούν στα άγκιστρα. Αν όχι οι εντολές στα άγκιστρα παρακάµπτονται. <?php $answer = "yes"; if ( $answer == "yes" ) { print "You can go on to the next statement"; }?>
Πρόταση else στηνεντολή if Σεπερίπτωσηπουθέλωανησυνθήκηστηνεντολή if δεν είναι αληθής να εκτελεστεί κάποιο άλλο κοµµάτι κώδικα χρησιµοποιώ την πρόταση else <?php $answer = "yes"; if ( $answer == "yes" ) print "You can go on to the next section"; else print "repeat the same section";?> Μπορώ να µην χρησιµοποιώ άγγιστρα αν έχω µία µόνο εντολή στην πρόταση if ή στην πρόταση else
Εντολή elseif Σε περίπτωση που θέλω να διακρίνω περισσότερες από δύο περιπτώσεις και να ακολουθήσω περισσότερες από 2 εναλλακτικές χρησιµοποιώ την elseif. Γιαπαράδειγµαέχω 3 πιθανέςτιµέςγιατηντιµήµιάςµεταβλητής (=0, >0, <0) και θέλω να εκτελεστεί διαφορετικό κοµµάτι κώδικα για καθεµιά από αυτές. $var =0 ; if ( $var == 0 ) print "the result is equal to 0"; else if ( $var > 0) print "the result is above 0"; else print "the result is less than 0 try again";
Εντολή switch() switch (expression) { case result1: // execute this if expression results in result1 break; case result2: // execute this if expression results in result2 break; default: // execute this if no break statement // has been encountered hitherto }
Παράδειγµα <?php $var = "no"; switch ( $var ) { case "yes": print " the result is the expected one "; break; case "no": print "the result is not the expected one"; break; default: print "wrong answer try again"; }?>
Οτελεστής? Ο τριαδικός τελεστής λειτουργεί παρόµοια µε την if, και επιστρέφει µία από τις δύο εκφράσεις που διαχωρίζονται µεταξύ τους µε άνω κάτω τελεία. (έκφραση)? Πρόταση1: Πρόταση 2; Η πρόταση 1 εκτελείται όταν η έκφραση είναι αληθήςκαιηπρόταση 2 ότανείναιψευδής. $y=($a==$b)? $a++ : $b++;