PHP – Μεταβλητές
Ο κύριος τρόπος για να αποθηκεύσουμε πληροφορίες στην PHP είναι με τη χρήση των μεταβλητών.
Εδώ είναι τα πιο σημαντικά πράγματα που πρέπει να γνωρίζετε για τις μεταβλητές στην PHP.
- Όλες οι μεταβλητές δηλώνονται έχοντας μπροστά από τα’ όνομά τους το σύμβολο του δολαρίου($)
- Η τιμή της μεταβλητής είναι πάντα η πιο πρόσφατη ανάθεση
- Οι μεταβλητές αντιστοιχίζονται με τον τελεστή =, με τ’ όνομά της στην αριστερή πλευρά και την έκφραση που την ορίζει στην δεξιά
- Οι μεταβλητές μπορούν, αλλά δε χρειάζεται ν’ ορισθούν πριν την ανάθεση
- Οι μεταβλητές δεν έχουν εσωτερικούς τύπους, δηλαδή δεν ξέρουν αν αποθηκεύουν αριθμό ή μία συμβολοσειρά
- Οι μεταβλητές πριν να τους καταχωρηθούν κάποιες τιμές έχουν προεπιλεγμένες τιμές
- Η PHP κάνει καλή δουλειά όταν αυτόματα μετατρέπεται από τον ένα τύπο στον άλλο
- Οι μεταβλητές στην PHP μοιάζουν με Perl.
Η PHP βασικά έχει 8 τύπους που μπορούμε να χρησιμοποιήσουμε για να κατασκευάσουμε μεταβλητές
- Ακέραιοι – μπορεί να είναι όλοι οι «καθαροί» αριθμοί, δηλαδή χωρίς δεκαδικά ψηφία. Π.χ. 4195
- Τα διπλά – αριθμοί κινητής υποδιαστολής, όπως το 3,14159 ή το 49,1
- Μεταβλητές με λογικές τιμές(Boolean) – αυτές που έχουν ως τιμή TRUE ή FALSE
- NULL – παίρνουν μόνο την τιμή NULL(μηδέν)
- Συμβολοσειρές – παίρνουν μία ακολουθία από χαρακτήρες, όπως «PHP supports string operations»
- Πίνακες – είναι ονομασμένες και ευρετηριασμένες συλλογές άλλων τιμών
- Αντικείμενα – είναι περιπτώσεις κλάσεων που ορίζονται από τον προγραμματιστή, οι οποίες μπορούν να συσκευάσουν και άλλα είδη τιμών και συναρτήσεων που είναι ειδικά για την κλάση.
- Πόροι – είναι ειδικές μεταβλητές που κρατούν αναφορές σε εξωτερικές πηγές (όπως μία σύνδεση με μία βάση δεδομένων)
Οι πέντε πρώτοι είναι απλοί τύποι μεταβλητών, οι επόμενοι δύο (πίνακες και αντικείμενα) είναι σύνθετοι – οι σύνθετοι μπορούν να πακετάρουν αυθαίρετες τιμές σε αυθαίρετες κλάσεις, ενώ οι απλοί δεν μπορούν.
Σ’ αυτό το κεφάλαιο θ’ αναλύσουμε μόνο τους απλούς τύπους. Τους σύνθετους θα τους αναλύσουμε ξεχωριστά.
Ακέραιοι
Σ’ αυτό τον τύπο μπαίνουν αριθμοί χωρίς δεκαδικά ψηφία, π.χ. 4195. Είναι οι απλούστεροι τύποι. Περιλαμβάνουν και τους αρνητικούς και τους θετικούς. Οι ακέραιοι αριθμοί μπορούν να αντιστοιχιστούν σε μεταβλητές ή μπορούν να χρησιμοποιηθούν σε εκφράσεις, όπως –
$int_var = 12345; $another_int = -12345 + 12345;
Οι ακέραιοι μπορεί να είναι σε δεκαδική βάση , σε οκταδική βάση ή σε δεκαεξαδική. Η δεκαδικοί είναι η προεπιλογή, οι οκταδικοί έχουν μπροστά 0 και οι δεκαεξαδικοί με 0x.
Για τις περισσότερες κοινές πλατφόρμες, ο μεγαλύτερος ακέραιος είναι (2**31 . 1) (ή 2.147.483.647) και ο μικρότερος (πιο αρνητικός) ακέραιος είναι . (.2**31 . 1) (ή 0,2,147,483,647).
Διπλά
Μοιάζουν με τα 3.14159 ή το 49.1. Από προεπιλογή διπλασιάζει την εκτύπωση με τον ελάχιστο αριθμό δεκαδικών ψηφίων. Για παράδειγμα ο κώδικας –
<?php $many = 2.2888800; $many_2 = 2.2111200; $few = $many + $many_2; print("$many + $many_2 = $few <br>"); ?>
Παράγει την παρακάτω έξοδο –
2.28888 + 2.21112 = 4.5
Μεταβλητές με λογικές τιμές(Boolean)
Έχουν μόνο δύο πιθανές τιμές, TRUE ή FALSE οι οποίες μπορούν να χρησιμοποιηθούν όπως παρακάτω –
if (TRUE) print("This will always print<br>"); else print("This will never print<br>");
Ερμηνεύοντας άλλους τύπους ως λογικούς(Boolean)
Εδώ είναι οι κανόνες για τον προσδιορισμό της “αλήθειας” οποιασδήποτε τιμής που δεν είναι ήδη του τύπου Boole –
- Αν η τιμή είναι ένας αριθμός, είναι ψευδής (FALSE) όταν είναι ακριβώς 0 και αληθής (TRUE) σε οποιαδήποτε άλλη περίπτωση
- Αν η μεταβλητή είναι συμβολοσειρά, τότε αυτή είναι ψευδής (FALSE) όταν δεν έχει καθόλου χαρακτήρες, ή είναι η συμβολοσειρά ‘0’ και αληθής (TRUE) σε κάθε άλλη περίπτωση
- Οι τιμές τύπου NULL είναι πάντα ψευδείς(FALSE)
- Στην περίπτωση πίνακα είναι ψευδής(FALSE) όταν δεν περιέχει καμμία τιμή και αληθής(TRUE) διαφορετικά. Για ένα αντικείμενο, το να περιέχει μια τιμή σημαίνει ότι έχει μια μεταβλητή μέλους στην οποία έχει εκχωρηθεί μια τιμή.
- Οι έγκυροι πόροι είναι αληθείς (αν και ορισμένες συναρτήσεις που επιστρέφουν πόρους όταν είναι επιτυχείς θα επιστρέψουν FALSE όταν δεν είναι επιτυχείς).
- Μη χρησιμοποιείτε τα διπλά ως Booleans
Καθεμία από τις επόμενες μεταβλητές έχει την true τιμή ενσωματωμένη στ’ όνομά της, όταν χρησιμοποιείτε σ’ένα Boolean πλαίσιο.
$true_num = 3 + 0.14159; $true_str = "Tried and true" $true_array[49] = "An array element"; $false_array = array(); $false_null = NULL; $false_num = 999 - 999; $false_str = "";
NULL
Το να δώσεις σε μια μεταβλητή αυτή την τιμή, μοιάζει κάπως έτσι –
$my_var = NULL;
Η ειδική μεταβλητή NULL γράφεται με όλα τα γράμματα κεφαλαία, αλλά στην πραγματικότητα δεν θα υπήρχε διαφορά αν γραφόντουσαν και με μικρά. Όλα τα παρακάτω είναι έγκυρα παραδείγματα –
$my_var = null;
Μια μεταβλητή που έχει εκχωρηθεί NULL έχει τις ακόλουθες ιδιότητες −
- Εκτιμάται σε ψευδή(FALSE) σε ένα Boolean πλαίσιο.
- Επιστρέφει τιμή ψευδή(FALSE) όταν ελέγχεται με τη συνάρτηση IsSet()
Συμβολοσειρές(strings)
Είναι ένας συνδυασμός από χαρακτήρες όπως «PHP supports string operations». Ακολουθούν έγκυρα παραδείγματα –
$string_1 = "This is a string in double quotes"; $string_2 = 'This is a somewhat longer, singly quoted string'; $string_39 = "This string has thirty-nine characters"; $string_0 = ""; // a string with zero characters
Οι συμβολοσειρές με μονά εισαγωγικά εμφανίζουν ακριβώς ότι έχουν αναμεσά στα εισαγωγικά, ενώ όταν υπάρχουν διπλά εισαγωγικά στη θέση που υπάρχει τ’ όνομα της μεταβλητής μπαίνει η τιμή της.
<?php $variable = "name"; $literally = 'My $variable will not print!'; print($literally); print "<br>"; $literally = "My $variable will print!"; print($literally); ?>
Αυτό θα παράγει το παρακάτω αποτέλεσμα:
My $variable will not print! My name will print
Δεν υπάρχει περιορισμός στο μήκος των συμβολοσειρών.
Οι συμβολοσειρές που οριοθετούνται με διπλά εισαγωγικά (όπως στο “this”) υποβάλλονται σε προ επεξεργασία και με τους δύο ακόλουθους δύο τρόπους από την PHP –
- Ορισμένες συμβολοσειρές που αρχίζουν με \ αντικαθίστανται από ειδικούς χαρακτήρες
- Τα ονόματα των μεταβλητών που ξεκινούν με $ αντικαθίστανται με αναπαραστάσεις συμβολοσειρών των τιμών τους
Ισχύουν τα ακόλουθα:
- \n αντικαθίστανται με μία κενή γραμμή
- \r αντικαθίστανται από το χαρακτήρα μεταφοράς – επιστροφής
- \t αντικαθίστανται από το χαρακτήρα καρτέλας(tab)
- \$ αντικαθίστανται από το ίδιο το σύμβολο του δολαρίου
- \’’ αντικαθίστανται από ένα διπλό εισαγωγικό
- \\ αντικαθίστανται από μία αντίστροφη κάθετη
Εδώ έγγραφο
Αυτό θα παράγει το ακόλουθο αποτέλεσμα:
<?php $channel =<<<_XML_ <channel> <title>What's For Dinner</title> <link>http://menu.example.com/ </link> <description>Choose what to eat tonight.</description> </channel> _XML_; echo <<<END This uses the "here document" syntax to output multiple lines with variable interpolation. Note that the here document terminator must appear on a line with just a semicolon. no extra whitespace! END; print $channel; ?>
Μεταβλητό πεδίο
Πεδίο μπορεί να ορισθεί ως το εύρος διαθεσιμότητας που έχει μία μεταβλητή μέσα στο πρόγραμμα που δηλώνεται. Η PHP έχει τέσσερις τύπους εύρους:
- Τοπικές μεταβλητές
- Παράμετροι συνάρτησης
- Καθολικές μεταβλητές
- Στατικές μεταβλητές
Ονομασία μεταβλητών
Οι νόμοι που πρέπει να διέπουν τα ονόματα των μεταβλητών είναι:
- Τ’ όνομα της μεταβλητής πρέπει να ξεκινά μ’ ένα γράμμα ή κάτω παύλα
- Τ’ όνομα μπορεί να περιέχει αριθμούς, γράμματα ή κάτω παύλες, αλλά δεν μπορεί να περιέχει χαρακτήρες όπως + , – , % , ( , ) . & κ.α.
Δεν υπάρχει περιορισμός στο μήκος για τις μεταβλητές.
Μετάφραση: Χάιδου Ελένη