Forum und email

Προκαθορισμένες μεταβλητές

Η PHP παρέχει έναν μεγάλο αριθμό από προκαθορισμένες μεταβλητές σε οποιοδήποτε script τρέχει. Αρκετές από αυτές τις μεταβλητές πάντως, δεν μπορούν να τεκμηριωθούν εντελώς αφού εξαρτώνται από τον server στον οποίο τρέχουν, την έκδοση και το setup του server, καθώς και από άλλους παράγοντες. Μερικές από αυτές τις μεταβλητές δε θα είναι διαθέσιμες όταν η PHP τρέχει σε command line. Για μια λίστα αυτών των μεταβλητών, παρακαλώ δείτε το τμήμα Δεσμευμένες προκαθορισμένες μεταβλητές.

Warning

Στην PHP 4.2.0 και μετά, η προκαθορισμένη τιμή για την ντιρεκτίβα της PHP register_globals είναι off. Αυτή είναι μια σημαντική αλλαγή για την PHP. Έχοντας τις register_globals off επηρεάζεται το σύνολο των προκαθορισμένων μεταβλητών που είναι διαθέσιμες σε global εμβέλεια. Για παράδειγμα για να πάρετε το DOCUMENT_ROOT θα χρησιμοποιήσετε την $_SERVER['DOCUMENT_ROOT'] αντί για την $DOCUMENT_ROOT, ή $_GET['id'] από το URL https://www.example.com/test.php?id=3 αντί για την $id, ή την $_ENV['HOME'] αντί για την $HOME.

Για πληροφορίες σχετικές μ'αυτή την αλλαγή, διαβάστε το 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.

Note: Μεταβλητές μεταβλητών Οι superglobals δεν μπορούν να χρησιμοποιηθούν ως μεταβλητές μεταβλητών.

Αν μια συγκεκριμένη μεταβλητή στην variables_order δεν έχει οριστεί, οι κατάλληλοι προκαθορισμένοι arrays της PHP μένουν κενοί.

PHP Superglobals
$GLOBALS
Περιέχουν μια αναφορά σε κάθε μεταβλητή που είναι διαθέσιμη μέσα στην global εμβέλεια του script. Τα κλειδιά αυτού του array είναι τα ονόματα των global μεταβλητών. Η $GLOBALS υπάρχει από την PHP 3.
$_SERVER
Είναι οι μεταβλητές που ορίζονται από τον web server ή διαφορετικά είναι άμεσα συνδεδεμένες με το περιβάλλον εκτέλεσης του τρέχοντος script. Είναι ανάλογες με τον παλιό $HTTP_SERVER_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται).
$_GET
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP GET. Είναι ανάλογες με τον παλιό $HTTP_GET_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται).
$_POST
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP POST. Είναι ανάλογες με τον παλιό $HTTP_POST_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται).
$_COOKIE
Είναι οι μεταβλητές που παρέχονται στο script μέσω της HTTP cookies. Είναι ανάλογες με τον παλιό $HTTP_COOKIE_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται).
$_FILES
Είναι οι μεταβλητές που παρέχονται στο script μέσω του HTTP post file uploads. Είναι ανάλογες με τον $HTTP_POST_FILES array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται). Δείτε το POST method uploads για περισσότερες πληροφορίες.
$_ENV
Είναι οι μεταβλητές που παρέχονται στο script μέσω του environment. Είναι ανάλογες με τον παλιό $HTTP_ENV_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται).
$_REQUEST
Είναι οι μεταβλητές που παρέχονται στο script μέσω του μηχανισμού εισαγωγής δεδομένων από το χρήστηξ, και συνεπώς δεν είναι αξιόπιστες. Η παρουσία και σειρά των μεταβλητών που περιέχονται στον array καθορίζεται σύμφωνα με την variables_order ντιρεκτίβα για configuration. Αυτός ο πίνακας δεν είναι ανάλογος με κάποιον άλλον σε προηγούμενες εκδόσεις την PHP προν την 4.1.0. Δείτε επίσης την import_request_variables().
Caution

Από την PHP 4.3.0, η πληροφορία για την FILE από την $_FILES δεν υπάρχει πια στην $_REQUEST.

Note: Όταν τρέχουμε σε command line , αυτό δεν θα συμπεριλάβει την argv και την argc εισόδους. Αυτές είναι παρούσες στον $_SERVER πίνακα.

$_SESSION
Είναι οι μεταβλητές που είναι προς το παρόν εγγεγραμμένες σε ένα session ενός script. Είναι ανάλογες με τον παλιό $HTTP_SESSION_VARS array (ο οποίος είναι ακόμη διαθέσιμος, αλλά δε συνιστάται). Δείτε το τμήμα Χρησιμοποιώντας συναρτήσεις για sessions για περισσότερες πληροφορίες.