Superglobals ถูกนำมาใช้ใน PHP 4.1.0 และตัวแปรในตัวที่มักจะมีอยู่ในขอบเขตทั้งหมด
PHP ตัวแปรทั่วโลก - Superglobals
ตัวแปรที่กำหนดไว้ล่วงหน้าหลายใน PHP มี "superglobals" ซึ่งหมายความว่าพวกเขาจะสามารถเข้าถึงได้ตลอดเวลาโดยไม่คำนึงถึงขอบเขต - และคุณสามารถเข้าถึงได้จากฟังก์ชั่นใด ๆ ชั้นเรียนหรือไฟล์ได้โดยไม่ต้องทำอะไรเป็นพิเศษ
ตัวแปร PHP superglobal คือ:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
บทนี้จะอธิบายบางส่วนของ superglobals และส่วนที่เหลือจะได้รับการอธิบายในบทต่อ
PHP $ GLOBALS
$ GLOBALS เป็นตัวแปร PHP โลกซูเปอร์ซึ่งจะใช้ในการเข้าถึงตัวแปรทั่วโลกจากที่ใดก็ได้ในสคริปต์ PHP (หรือจากภายในฟังก์ชั่นหรือวิธีการ)
ร้านค้า PHP ตัวแปรทั่วโลกทั้งหมดในอาร์เรย์เรียกว่า $ GLOBALS [ index ] ดัชนีเก็บชื่อของตัวแปร
ตัวอย่างด้านล่างนี้แสดงให้เห็นถึงวิธีการใช้ซุปเปอร์ตัวแปรทั่วโลก $ GLOBALS:
ตัวอย่าง
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] =
$GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
ตัวอย่างเช่นเรียกใช้» ในตัวอย่างข้างต้นตั้งแต่ Z เป็นปัจจุบันตัวแปรภายในอาร์เรย์ $ GLOBALS ก็ยังสามารถเข้าถึงได้จากนอกฟังก์ชั่น!
PHP $ _SERVER
$ _SERVER เป็นตัวแปร PHP โลกซุปเปอร์ซึ่งเก็บข้อมูลเกี่ยวกับส่วนหัวของเส้นทางและสถานที่สคริปต์
ตัวอย่างด้านล่างแสดงวิธีการใช้งานบางส่วนขององค์ประกอบใน $ _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'] | ส่งกลับรุ่นของ Common Gateway อินเตอร์เฟส (CGI) เซิร์ฟเวอร์ใช้ |
$ _SERVER [ 'SERVER_ADDR'] | ส่งกลับที่อยู่ IP ของเซิร์ฟเวอร์โฮสต์ |
$ _SERVER [ 'SERVER_NAME'] | ผลตอบแทนที่ได้ชื่อของเซิร์ฟเวอร์โฮสต์ (such as www.w3ii.com) |
$ _SERVER [ 'SERVER_SOFTWARE'] | กลับสตริงประจำตัวเซิร์ฟเวอร์ (such as Apache/2.2.24) |
$ _SERVER [ 'SERVER_PROTOCOL'] | ส่งกลับชื่อและการแก้ไขของโปรโตคอลข้อมูล (such as HTTP/1.1) |
$ _SERVER [ 'REQUEST_METHOD'] | วิธีการส่งกลับคำขอที่ใช้ในการเข้าถึงหน้าเว็บ (such as POST) |
$ _SERVER [ 'REQUEST_TIME'] | ผลตอบแทนการประทับเวลาของการเริ่มต้นของการร้องขอที่ (such as 1377687496) |
$ _SERVER [ 'QUERY_STRING'] | กลับสตริงแบบสอบถามถ้าหน้าจะเข้าถึงได้ผ่านทางสตริงแบบสอบถาม |
$ _SERVER [ 'HTTP_ACCEPT'] | ผลตอบแทนยอมรับโหม่งคำขอปัจจุบัน |
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] | ส่งกลับหัว Accept_Charset จากคำขอปัจจุบัน (เช่น UTF-8, ISO-8859-1) |
$ _SERVER [ 'HTTP_HOST'] | ผลตอบแทนที่ส่วนหัวของโฮสต์จากคำขอปัจจุบัน |
$ _SERVER [ 'HTTP_REFERER'] | ส่งกลับ URL ที่สมบูรณ์ของหน้าปัจจุบัน (ไม่น่าเชื่อถือเพราะไม่ได้ทั้งหมดใช้ตัวแทนสนับสนุนมัน) |
$ _SERVER [ 'HTTPS'] | เป็นสคริปต์ที่สอบถามผ่านโปรโตคอล HTTP ที่เชื่อถือได้ |
$ _SERVER [ 'REMOTE_ADDR'] | ส่งกลับที่อยู่ IP จากการที่ผู้ใช้กำลังดูหน้าปัจจุบัน |
$ _SERVER [ 'REMOTE_HOST'] | ส่งกลับชื่อโฮสต์จากการที่ผู้ใช้กำลังดูหน้าปัจจุบัน |
$ _SERVER [ 'REMOTE_PORT'] | ส่งกลับพอร์ตที่ถูกนำมาใช้ในเครื่องของผู้ใช้ในการสื่อสารกับเว็บเซิร์ฟเวอร์ |
$ _SERVER [ 'SCRIPT_FILENAME'] | ส่งคืนชื่อพา ธ สัมบูรณ์ของสคริปต์ในขณะนี้การดำเนินการ |
$ _SERVER [ 'SERVER_ADMIN'] | ผลตอบแทนที่คุ้มค่าให้กับคำสั่ง SERVER_ADMIN ในแฟ้มการกำหนดค่าเว็บเซิร์ฟเวอร์ (ถ้าสคริปต์ของคุณทำงานบนโฮสต์เสมือนมันจะเป็นค่าที่กำหนดไว้สำหรับว่าโฮสต์เสมือน) (such as [email protected]) |
$ _SERVER [ 'SERVER_PORT'] | ส่งกลับพอร์ตบนเครื่องเซิร์ฟเวอร์ที่ถูกใช้โดยเว็บเซิร์ฟเวอร์สำหรับการสื่อสาร (such as 80) |
$ _SERVER [ 'SERVER_SIGNATURE'] | ส่งกลับรุ่นของเซิร์ฟเวอร์และชื่อโฮสต์เสมือนที่มีการเพิ่มไปยังหน้าเว็บเซิร์ฟเวอร์ที่สร้าง |
$ _SERVER [ 'PATH_TRANSLATED'] | ส่งกลับเส้นทางที่ใช้ระบบไฟล์สคริปต์ปัจจุบัน |
$ _SERVER [ 'สคริปต์'] | ส่งกลับเส้นทางของสคริปต์ปัจจุบัน |
$ _SERVER [ 'SCRIPT_URI'] | ส่งกลับ URI ของหน้าปัจจุบัน |
PHP $ _REQUEST
PHP $ _REQUEST ถูกนำมาใช้ในการเก็บรวบรวมข้อมูลหลังจากกรอกแบบฟอร์มเว็บ HTML
ตัวอย่างด้านล่างแสดงแบบฟอร์มที่มีช่องใส่และปุ่มส่ง เมื่อผู้ใช้ส่งข้อมูลได้โดยคลิกที่ "Submit" ข้อมูลในแบบฟอร์มจะถูกส่งไปยังแฟ้มที่ระบุไว้ใน action แอตทริบิวต์ของ <form> แท็ก ในตัวอย่างนี้เราชี้ไปที่ไฟล์นี้ตัวเองสำหรับการประมวลผลข้อมูลแบบฟอร์ม หากคุณต้องการที่จะใช้ไฟล์ PHP อื่นเพื่อประมวลผลข้อมูลแบบฟอร์มเปลี่ยนที่มีชื่อไฟล์ที่คุณเลือก จากนั้นเราสามารถใช้ซุปเปอร์ตัวแปรทั่วโลก $ _REQUEST ที่จะเก็บค่าของฟิลด์การป้อนข้อมูล:
ตัวอย่าง
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
ตัวอย่างเช่นเรียกใช้» PHP $ _POST
PHP $ _POST ใช้กันอย่างแพร่หลายในการเก็บรวบรวมข้อมูลในแบบฟอร์มหลังจากกรอกแบบฟอร์ม HTML ที่มีวิธี = "โพสต์" $ _POST ยังถูกนำมาใช้กันอย่างแพร่หลายในการส่งผ่านตัวแปร
ตัวอย่างด้านล่างแสดงแบบฟอร์มที่มีช่องใส่และปุ่มส่ง เมื่อผู้ใช้ส่งข้อมูลได้โดยคลิกที่ "Submit" ข้อมูลในแบบฟอร์มจะถูกส่งไปยังแฟ้มที่ระบุไว้ใน 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
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
ตัวอย่างเช่นเรียกใช้» PHP $ _GET
PHP $ _GET ยังสามารถใช้ในการเก็บรวบรวมข้อมูลในแบบฟอร์มหลังจากกรอกแบบฟอร์ม HTML ที่มี method = "รับ"
$ _GET ยังสามารถเก็บข้อมูลที่ส่งใน URL
สมมติเรามีเพจ HTML ที่มีการเชื่อมโยงกับพารามิเตอร์:
<html>
<body>
<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>
</body>
</html>
เมื่อผู้ใช้คลิกที่ลิงค์ "Test $GET" พารามิเตอร์ "subject" และ "web" จะถูกส่งไป "test_get.php" และจากนั้นคุณสามารถเข้าถึงค่าของพวกเขาใน "test_get.php" ด้วย $ _GET
ตัวอย่างด้านล่างแสดงรหัสใน "test_get.php" :
ตัวอย่าง
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
ตัวอย่างเช่นเรียกใช้» เคล็ดลับ: คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ $ _POST และ $ _GET ใน แบบฟอร์ม PHP บท