PHP ตัวแปร global - superglobal
- หน้าก่อนหน้า PHP จัด序แบบค่า
- หน้าต่อไป PHP การจัดการฟอร์ม
ตัวแปร superglobal ถูกนำเสนอใน PHP 4.1.0 ซึ่งเป็นตัวแปรที่สามารถใช้งานได้ทุกโซนสากลของสคริปต์
PHP ตัวแปร global - superglobal
ตัวแปร pre-defined หลายตัวใน PHP คือ 'superglobal' ซึ่งหมายความว่ามันสามารถใช้งานได้ทั้งหมดในโซนสากลของสคริปต์ ไม่จำเป็นต้องประกาศ global $variable; ก่อนที่จะเข้าถึงมัน
ตัวแปร superglobal นี้คือ:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
บทนี้จะนำเสนอตัวแปร superglobal บางตัว และจะเรียกเสนอตัวแปร superglobal อื่นในบทต่อไป
$GLOBALS — สัญญาณตัวแปรทั้งหมดที่สามารถใช้งานได้ในโซนสากล
ตัวแปร global $GLOBALS ใช้เพื่อเข้าถึงตัวแปรทั้งหมดในสคริปต์ PHP ทุกที่ (ทั้งในฟังก์ชันหรือวิธี)
PHP จะบันทึกตัวแปรทั้งหมดในตัวแปร $GLOBALS[index] ตัวแปร ชื่อของตัวแปรนี้เป็นใบกลุ่ม
ตัวอย่างด้านล่างนี้แสดงวิธีการใช้ตัวแปร superglobal $GLOBALS:
ตัวอย่าง
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
ในตัวอย่างด้านบน เนื่องจาก z คือตัวแปรในตัวแปร $GLOBALS ดังนั้นสามารถเข้าถึงมันนอกฟังก์ชันได้เช่นกัน。
PHP $_SERVER
ตัวแปร superglobal $_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'] | กลับค่าเวอร์ชั่นของไกแล็บบี้ส์ซึ่งเซิร์ฟเวอร์ใช้ |
$_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'] | กลับค่า timestamp ของเวลาที่เริ่มต้นของคำขอ (เช่น 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'] | กลับค่าโปรต์ที่ใช้โดยคอมพิวเตอร์ของผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์เว็บ |
$_SERVER['SCRIPT_FILENAME'] | กลับค่าทางเข้าแบบเดี่ยวของสคริปต์ที่กำลังปฏิบัติงานปัจจุบัน |
$_SERVER['SERVER_ADMIN'] | ค่านี้บอกเล่าถึงค่าตัวแปร SERVER_ADMIN ในไฟล์การปรับแต่งเซิร์ฟเวอร์ Apache |
$_SERVER['SERVER_PORT'] | โปรต์ที่ใช้โดยเว็บเซิร์ฟเวอร์ ค่าปริยายคือ '80' |
$_SERVER['SERVER_SIGNATURE'] | กลับค่าสัญญาณเว็บเซิร์ฟเวอร์และชื่อโฮสต์เวิลด์ |
$_SERVER['PATH_TRANSLATED'] | ระยะทางพื้นฐานของไฟล์ระบบภายในของสคริปต์ปัจจุบัน (ไม่ใช่ไดเรกทอรีของเอกสารราก) |
$_SERVER['SCRIPT_NAME'] | กลับค่าระยะทางของไฟล์สคริปต์ปัจจุบัน |
$_SERVER['SCRIPT_URI'] | กลับค่า URI ของหน้าปัจจุบัน |
PHP $_REQUEST
PHP $_REQUEST ถูกใช้ในการรับข้อมูลฟอร์มที่ส่งมา
ตัวอย่างดังนี้แสดงให้เห็นฟอร์มที่มีช่องว่างและปุ่มส่งข้อมูล ในตอนที่ผู้ใช้คลิกปุ่มส่งข้อมูลเพื่อส่งข้อมูลของฟอร์ม ข้อมูลของฟอร์มจะถูกส่งไปยังไฟล์ที่กำหนดในค่า attribute action ของ tag <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 $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST ถูกใช้กว้างขวางในการรับข้อมูลฟอร์มที่ส่งมาด้วย method="post" ของ HTML ฟอร์ม $_POST ยังถูกใช้เพื่อส่งตัวแปรเช่นกัน
ตัวอย่างดังนี้แสดงให้เห็นฟอร์มที่มีช่องว่างเพื่อรับค่าและปุ่มส่งข้อมูล ในตอนที่ผู้ใช้คลิกปุ่มส่งข้อมูลเพื่อส่งข้อมูลของฟอร์ม ข้อมูลของฟอร์มจะถูกส่งไปยังไฟล์ที่กำหนดในค่า attribute action ของ tag <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 ยังสามารถใช้ในการรับข้อมูลฟอร์มที่ส่งมาด้วยวิธีการ "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
- หน้าก่อนหน้า PHP จัด序แบบค่า
- หน้าต่อไป PHP การจัดการฟอร์ม