Προκαθορισμένες μεταβλητές global του PHP - Υπεργlobals

Οι υπεργlobals εισήχθησαν στην PHP 4.1.0 και είναι ενσωματωμένες μεταβλητές που είναι πάντα διαθέσιμες σε όλη τη διάρκεια του script.

Προκαθορισμένες μεταβλητές global του PHP - Υπεργlobals

Πολλές προκαθορισμένες μεταβλητές του PHP είναι 'υπεργlobals', αυτό σημαίνει ότι είναι διαθέσιμες σε όλη τη διάρκεια του σκευπτού ενός script. Δεν χρειάζεται να εκτελέσετε global $variable; για να τις προσέξετε.

Αυτοί οι υπεργlobals είναι:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Αυτό το κεφάλαιο θα παρουσιάσει μερικούς υπεργlobals και θα εξηγήσει άλλους υπεργlobals σε αργότερα κεφάλαια.

$GLOBALS — Επεκτείνει όλες τις μεταβλητές της global scope

Το υπεργlobals $GLOBALS χρησιμοποιείται για να προσέξουμε τις globale μεταβλητές σε οποιαδήποτε θέση του PHP σκευπτού (από συνάρτηση ή μέθοδο).

Το PHP αποθηκεύει όλες τις globale μεταβλητές σε ένα πίνακα με όνομα $GLOBALS[index]. Το όνομα της μεταβλητής είναι η κλειδί του πίνακα.

Το παράδειγμα που ακολουθεί δείχνει πώς να χρησιμοποιήσουμε τον υπεργlobals $GLOBALS:

实例

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

运行实例

Στο παραπάνω παράδειγμα, λόγω του ότι η z είναι μεταβλητή του $GLOBALS, μπορεί να πρόσβαση σε αυτήν και έξω από τη συνάρτηση.

PHP $_SERVER

Το υπεργlobals $_SERVER αποθηκεύει πληροφορίες για τα επικεφαλαία, τις διαδρομές και τη θέση του σكрипτ.

Το παράδειγμα που ακολουθεί δείχνει πώς να χρησιμοποιήσουμε ορισμένα στοιχεία του $_SERVER:

实例

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

运行实例

Η παρακάτω τаблицή περιλαμβάνει τα πιο σημαντικά στοιχεία που μπορείτε να προσέξετε στο $_SERVER:

Στοιχεία/Κώδικας Περιγραφή
$_SERVER['PHP_SELF'] Επιστρέφει το όνομα του αρχείου του σενάριου που εκτελείται.
$_SERVER['GATEWAY_INTERFACE'] Επιστρέφει την έκδοση του προτύπου CGI που χρησιμοποιείται από τον διακομιστή.
$_SERVER['SERVER_ADDR'] Επιστρέφει τη διεύθυνση IP του διακομιστή όπου εκτελείται το τρέχον σενάριο.
$_SERVER['SERVER_NAME'] Επιστρέφει το όνομα του διακομιστή όπου εκτελείται το τρέχον σενάριο (π.χ. www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Επιστρέφει τη συμβολοσειρά αναγνώρισης του διακομιστή (π.χ. Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Επιστρέφει το όνομα και την έκδοση του πρωτοκόλλου επικοινωνίας που χρησιμοποιήθηκε για την αίτηση της σελίδας (π.χ. “HTTP/1.0”)
$_SERVER['REQUEST_METHOD'] Επιστρέφει τον τύπο αίτησης που χρησιμοποιήθηκε για την πρόσβαση στη σελίδα (π.χ. POST).
$_SERVER['REQUEST_TIME'] Επιστρέφει τον χρονικό δείκτη του αιτήματος, όταν ξεκίνησε η αίτηση (π.χ. 1577687494).
$_SERVER['QUERY_STRING'] Επιστρέφει τη συμβολοσειρά ερωτηματικής, αν προσέγγισε αυτή τη σελίδα μέσω ερωτηματικής.
$_SERVER['HTTP_ACCEPT'] Επιστρέφει τα κεφαλίδια αίτησης από την τρέχουσα αίτηση.
$_SERVER['HTTP_ACCEPT_CHARSET'] Επιστρέφει το κεφαλίδι Accept_Charset από την τρέχουσα αίτηση (π.χ. utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] Επιστρέφει το κεφαλίδι Host από την τρέχουσα αίτηση.
$_SERVER['HTTP_REFERER'] Επιστρέφει την πλήρη URL της τρέχουσας σελίδας (μη αξιόπιστο, καθώς όχι όλοι οι χρήστες αναγνωστών υποστηρίζουν).
$_SERVER['HTTPS'] Είναι δυνατό να ερωτηθεί η σενάριο μέσω ασφαλούς πρωτοκόλλων HTTP;
$_SERVER['REMOTE_ADDR'] Επιστρέφει την διεύθυνση IP του χρήστη που περιηγείται στην τρέχουσα σελίδα.
$_SERVER['REMOTE_HOST'] Επιστρέφει το όνομα του υπολογιστή του χρήστη που περιηγείται στην τρέχουσα σελίδα.
$_SERVER['REMOTE_PORT'] Επιστρέφει τον θυραγωγό που χρησιμοποιείται από το χρήστη για τη σύνδεση με τον διακομιστή Web.
$_SERVER['SCRIPT_FILENAME'] Επιστρέφει τον απευθείας δρόμο του αρχείου του τρέχοντος αρχείου脚本.
$_SERVER['SERVER_ADMIN'] Αυτή η τιμή καθορίζει τον παράμετρο SERVER_ADMIN του αρχείου διαμόρφωσης του διακομιστή Apache.
$_SERVER['SERVER_PORT'] Ο θυραγωγός που χρησιμοποιείται από τον διακομιστή Web. Η προεπιλεγμένη τιμή είναι "80".
$_SERVER['SERVER_SIGNATURE'] Επιστρέφει την έκδοση του διακομιστή και το όνομα του φιλοξενητή.
$_SERVER['PATH_TRANSLATED'] Η βασική διαδρομή του αρχείου συστήματος του τρέχοντος αρχείου脚本 (μην κατανομή αρχείων).
$_SERVER['SCRIPT_NAME'] Επιστρέφει τον δρόμο του τρέχοντος αρχείου脚本.
$_SERVER['SCRIPT_URI'] Επιστρέφει την URI της τρέχουσας σελίδας.

PHP $_REQUEST

Το PHP $_REQUEST χρησιμοποιείται για τη συλλογή δεδομένων μορφοτύπου που υποβάλλονται HTML.

Το παράδειγμα που ακολουθεί παρουσιάζει ένα μορφότυπο που περιέχει πεδία εισαγωγής και κουμπί υποβολής. Όταν ο χρήστης κάνει κλικ στο κουμπί υποβολής για να υποβάλλει δεδομένα του μορφοτύπου, τα δεδομένα του μορφοτύπου αποστέλλονται στον φάκελο που καθορίζεται από την ιδιότητα action της ετικέτας <form>. Σε αυτό το παράδειγμα, καθορίζουμε τον ίδιο φάκελο για να διαχειριστούμε τα δεδομένα του μορφοτύπου. Αν χρειάζεστε να χρησιμοποιήσετε άλλο αρχείο PHP για να διαχειριστεί τα δεδομένα του μορφοτύπου, αλλάξτε τον όνομα του φακέλου που επιλέξατε. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε την υπεργлобική μεταβλητή $_REQUEST για να συλλέξουμε τις τιμές των πεδίων input:

实例

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>

运行实例

PHP $_POST

Το PHP $_POST χρησιμοποιείται ευρέως για τη συλλογή δεδομένων μορφοτύπου που υποβάλλονται με method="post" HTML. Το $_POST χρησιμοποιείται επίσης συχνά για την μεταφορά μεταβλητών.

Το παράδειγμα που ακολουθεί παρουσιάζει ένα μορφότυπο που περιέχει πεδία εισαγωγής και κουμπί υποβολής. Όταν ο χρήστης κάνει κλικ στο κουμπί υποβολής για να υποβάλλει δεδομένα, τα δεδομένα του μορφοτύπου αποστέλλονται στον φάκελο που καθορίζεται από την ιδιότητα action του ετικέτας <form>. Σε αυτό το παράδειγμα, καθορίζουμε τον ίδιο φάκελο για να διαχειριστούμε τα δεδομένα του μορφοτύπου. Αν θέλετε να χρησιμοποιήσετε άλλη σελίδα PHP για να διαχειριστεί τα δεδομένα του μορφοτύπου, αλλάξτε τον όνομα του φακέλου που επιλέξατε. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε την υπεργлобική μεταβλητή $_POST για να συλλέξουμε τις τιμές των πεδίων εισαγωγής:

实例

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname'];
echo $name; 
?>
</body>
</html>

运行实例

PHP $_GET

PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

$_GET 也可以收集 URL 中的发送的数据。

假设我们有一张页面含有带参数的超链接:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">测试 $GET</a>
</body>
</html>

当用户点击链接 "测试 $GET",参数 "subject" 和 "web" 被发送到 "test_get.php",然后您就能够通过 $_GET 在 "test_get.php" 中访问这些值了。

下面的例子是 "test_get.php" 中的代码:

实例

<html>
<body>
<?php 
echo "在 " . $_GET['web'] . " 学习 " . $_GET['subject'];
?>
</body>
</html>

运行实例

提示:您将在 PHP 表单 在这一节中学到更多有关 $_POST 和 $_GET 的知识。