Η PHP παρέχει έναν μεγάλο αριθμό από προκαθορισμένες μεταβλητές σε οποιοδήποτε script τρέχει. Αρκετές από αυτές τις μεταβλητές πάντως, δεν μπορούν να τεκμηριωθούν εντελώς αφού εξαρτώνται από τον server στον οποίο τρέχουν, την έκδοση και το setup του server, καθώς και από άλλους παράγοντες. Μερικές από αυτές τις μεταβλητές δε θα είναι διαθέσιμες όταν η PHP τρέχει σε command line. Για μια λίστα αυτών των μεταβλητών, παρακαλώ δείτε το τμήμα Δεσμευμένες προκαθορισμένες μεταβλητές.
Ðñïåéäïðïßçóç |
Στην PHP 4.2.0 και μετά, η προκαθορισμένη τιμή για την ντιρεκτίβα της PHP register_globals είναι
off. Αυτή είναι μια σημαντική αλλαγή για την PHP. Έχοντας τις
register_globals off επηρεάζεται το σύνολο των προκαθορισμένων
μεταβλητών που είναι διαθέσιμες σε global εμβέλεια. Για παράδειγμα για να πάρετε το
Για πληροφορίες σχετικές μ'αυτή την αλλαγή, διαβάστε το configuration entry για register_globals, το κεφάλαιο για ασφάλεια Χρησιμοποιώντας Register Globals , καθώς επίσης και την PHP 4.1.0 και 4.2.0 Release Announcements. Είναι προτιμότερο να χρησιμοποιείτε τις διαθέσιμες PHP Reserved Predefined Μεταβλητές, όπως την superglobal arrays. |
Από την έκδοση 4.1.0 και μετά, η PHP παρέχει ένα επιπρόσθετο σύνολο από προκαθορισμένους arrays
που περιέχουν μεταβλητές από τον web server (αν είναι δυνατό), το
environment (περιβάλλον), και αυτά που εισάγει ο χρήστης. Αυτοί οι νέοι arrays είναι μάλλον ιδιαίτεροι
από την άποψη ότι είναι αυτόματα global--π.χ., αυτόματα
διαθέσιμοι για κάθε εμβέλεια. Γι'αυτό το σκοπό, είναι συχνά γνωστοί και ως
'autoglobals' ή 'superglobals'. (Δεν υπάρχει μηχανισμός στην PHP για
superglobals που μπορεί να ορίσει ο χρήστης.) Οι superglobals παρατίθενται παρακάτω.
Πάντως, για μια λίστα των περιεχομένων τους και περεταίρω συζήτηση πάνω
στις προκαθορισμένες μεταβλητές της PHP και στη φύση τους, παρακαλώ δείτε το τμήμα
Δεσμευμένες προκαθορισμένες μεταβλητές.
Επίσης, θα παρατηρήσετε πώς οι παλιότερες προκαθορισμένες μεταβλητές
($HTTP_*_VARS
) υπάρχουν ακόμη.
Από την PHP 5.0.0, τα μεγάλα
προκαθορισμένα σταθερά
array μπορούν να απενεργοποιηθούν με το
register_long_arrays
directive.
Μεταβλητές μεταβλητών: Οι superglobals δεν μπορούν να χρησιμοποιηθούν ως μεταβλητές μεταβλητών.
Αν μια συγκεκριμένη μεταβλητή στην variables_order δεν έχει οριστεί, οι κατάλληλοι προκαθορισμένοι arrays της PHP μένουν κενοί.
PHP Superglobals
Περιέχουν μια αναφορά σε κάθε μεταβλητή που είναι διαθέσιμη
μέσα στην global εμβέλεια του script. Τα κλειδιά αυτού
του array είναι τα ονόματα των global μεταβλητών.
Η $GLOBALS
υπάρχει από την PHP 3.
Είναι οι μεταβλητές που ορίζονται από τον web server ή διαφορετικά είναι άμεσα συνδεδεμένες
με το περιβάλλον εκτέλεσης του τρέχοντος script. Είναι ανάλογες με
τον παλιό $HTTP_SERVER_VARS
array (ο οποίος είναι
ακόμη διαθέσιμος, αλλά δε συνιστάται).
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP GET. Είναι ανάλογες με τον
παλιό $HTTP_GET_VARS
array (ο οποίος είναι ακόμη
διαθέσιμος, αλλά δε συνιστάται).
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP POST. Είναι ανάλογες με
τον παλιό $HTTP_POST_VARS
array (ο οποίος είναι ακόμη
διαθέσιμος, αλλά δε συνιστάται).
Είναι οι μεταβλητές που παρέχονται στο script μέσω της HTTP cookies. Είναι ανάλογες με
τον παλιό $HTTP_COOKIE_VARS
array (ο οποίος είναι
ακόμη διαθέσιμος, αλλά δε συνιστάται).
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP post file
uploads. Είναι ανάλογες με τον
$HTTP_POST_FILES
array (ο οποίος είναι ακόμη
διαθέσιμος, αλλά δε συνιστάται). Δείτε το POST method
uploads για περισσότερες πληροφορίες.
Είναι οι μεταβλητές που παρέχονται στο script μέσω του environment. Είναι ανάλογες με
τον παλιό $HTTP_ENV_VARS
array (ο οποίος είναι
ακόμη διαθέσιμος, αλλά δε συνιστάται).
Είναι οι μεταβλητές που παρέχονται στο script μέσω του μηχανισμού εισαγωγής δεδομένων από το χρήστηξ, και συνεπώς δεν είναι αξιόπιστες. Η παρουσία και σειρά των μεταβλητών που περιέχονται στον array καθορίζεται σύμφωνα με την variables_order ντιρεκτίβα για configuration. Αυτός ο πίνακας δεν είναι ανάλογος με κάποιον άλλον σε προηγούμενες εκδόσεις την PHP προν την 4.1.0. Δείτε επίσης την import_request_variables().
Ðñïóï÷Þ |
Από την PHP 4.3.0, η πληροφορία για την FILE από την |
Óçìåßùóç: Όταν τρέχουμε σε command line , αυτό δεν θα συμπεριλάβει την
argv
και τηνargc
εισόδους. Αυτές είναι παρούσες στον$_SERVER
πίνακα.
Είναι οι μεταβλητές που είναι προς το παρόν εγγεγραμμένες σε ένα session ενός
script. Είναι ανάλογες με τον παλιό
$HTTP_SESSION_VARS
array (ο οποίος είναι ακόμη
διαθέσιμος, αλλά δε συνιστάται). Δείτε το τμήμα Χρησιμοποιώντας συναρτήσεις για sessions
για περισσότερες πληροφορίες.