ตัวแปรซูเปอร์โกลบอลถูกเปิดใช้งานหลังจาก PHP 4.1.0 เป็นตัวแปรที่มาพร้อมกับระบบ PHP และพร้อมใช้งานในขอบเขตทั้งหมดของสคริปต์
superglobals หลายอันถูกกำหนดไว้ล่วงหน้าใน PHP ซึ่งหมายความว่าซุปเปอร์โกลบอลเหล่านั้นสามารถใช้ได้ในขอบเขตทั้งหมดของสคริปต์ คุณสามารถใช้มันในฟังก์ชันและคลาสได้โดยไม่ต้องมีคำแนะนำพิเศษ
รายการตัวแปร PHP super global:
$GLOBALS
$_เซิร์ฟเวอร์
$_คำขอ
$_โพสต์
$_GET
$_ไฟล์
$_ENV
$_คุกกี้
$_เซสชั่น
ในบทนี้เราจะอธิบายตัวแปร super global ที่ใช้กันทั่วไปหลายตัว และเราจะแนะนำตัวแปรที่เหลือในบทต่อไป
$GLOBALS เป็นกลุ่มตัวแปรซูเปอร์โกลบอลใน PHP ที่สามารถเข้าถึงได้ในขอบเขตทั้งหมดของสคริปต์ PHP
$GLOBALS เป็นอาร์เรย์รวมระดับโลกที่มีตัวแปรทั้งหมด ชื่อของตัวแปรคือคีย์ของอาร์เรย์
ตัวอย่างต่อไปนี้แสดงวิธีใช้ตัวแปร super global $GLOBALS:
<?php $x = 75 ; $ y = 25 ; ส่วนที่เพิ่มเข้าไป ( ) - $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] ; นอกจาก นี้ ( ) ; $ z ;
ในตัวอย่างข้างต้น z คือตัวแปรซูเปอร์โกลบอลในอาร์เรย์ $GLOBALS ซึ่งสามารถเข้าถึงได้ภายนอกฟังก์ชันด้วย
$_SERVER เป็นอาร์เรย์ที่มีข้อมูล เช่น ตำแหน่งของส่วนหัว เส้นทาง และสคริปต์ รายการในอาร์เรย์นี้สร้างขึ้นโดยเว็บเซิร์ฟเวอร์ ไม่มีการรับประกันว่าทุกเซิร์ฟเวอร์จะเสนอรายการทั้งหมด เซิร์ฟเวอร์อาจเพิกเฉยต่อบางรายการหรือให้บริการรายการที่ไม่ได้ระบุไว้ที่นี่
ตัวอย่างต่อไปนี้แสดงวิธีการใช้องค์ประกอบใน $_SERVER:
<?php เสียงสะท้อน $ _SERVER [ ' PHP_SELF ' ] ; " <br> " ; $ _SERVER [ ' SERVER_NAME ' ] ; " <br> " ; $ _SERVER [ ' HTTP_HOST ' ] ; " <br> " ; $ _SERVER [ ' HTTP_REFERER ' ] ; " <br> " ; $ _SERVER [ ' HTTP_USER_AGENT ' ] ; " <br> " ; $ _SERVER [ ' SCRIPT_NAME ' ] ;
ตารางต่อไปนี้แสดงรายการองค์ประกอบที่สำคัญในตัวแปร $_SERVER ทั้งหมด:
| องค์ประกอบ/รหัส | อธิบาย |
|---|---|
| $_SERVER['PHP_SELF'] | ชื่อไฟล์ของสคริปต์ที่กำลังดำเนินการอยู่ ซึ่งเกี่ยวข้องกับรูทเอกสาร ตัวอย่างเช่น การใช้ $_SERVER['PHP_SELF'] ในสคริปต์ที่ http://example.com/test.php/foo.bar จะส่งผลให้ได้ /test.php/foo.bar ค่าคงที่ __FILE__ ประกอบด้วยเส้นทางแบบเต็มและชื่อไฟล์ของไฟล์ปัจจุบัน (เช่น ที่มี) ตั้งแต่ PHP เวอร์ชัน 4.3.0 เป็นต้นไป ตัวแปรนี้จะมีชื่อสคริปต์หาก PHP ทำงานในโหมดบรรทัดคำสั่ง ตัวแปรนี้ไม่พร้อมใช้งานในเวอร์ชันก่อนหน้า |
| $_SERVER['GATEWAY_INTERFACE'] | เวอร์ชันของข้อกำหนด CGI ที่เซิร์ฟเวอร์ใช้ เช่น "CGI/1.1" |
| $_SERVER['SERVER_ADDR'] | ที่อยู่ IP ของเซิร์ฟเวอร์ที่สคริปต์กำลังทำงานอยู่ |
| $_SERVER['SERVER_NAME'] | ชื่อโฮสต์ของเซิร์ฟเวอร์ที่สคริปต์กำลังทำงานอยู่ หากสคริปต์กำลังทำงานบนโฮสต์เสมือน ชื่อจะถูกกำหนดโดยค่าที่ตั้งไว้สำหรับโฮสต์เสมือนนั้น (เช่น: www.codercto.com) |
| $_SERVER['SERVER_SOFTWARE'] | สตริงการระบุเซิร์ฟเวอร์ ระบุไว้ในข้อมูลส่วนหัวเมื่อตอบสนองต่อคำขอ (เช่น: Apache/2.2.24) |
| $_SERVER['SERVER_PROTOCOL'] | ชื่อและเวอร์ชันของโปรโตคอลการสื่อสารที่ใช้เมื่อร้องขอเพจ ตัวอย่างเช่น "HTTP/1.0" |
| $_SERVER['REQUEST_METHOD'] | วิธีการร้องขอที่ใช้ในการเข้าถึงเพจ เช่น "GET", "HEAD", "POST", "PUT" |
| $_SERVER['REQUEST_TIME'] | การประทับเวลาเมื่อคำขอเริ่มต้น ใช้งานได้ตั้งแต่ PHP 5.1.0 (เช่น: 1377687496) |
| $_SERVER['QUERY_STRING'] | สตริงการสืบค้น (สตริงการสืบค้น) ถ้ามี ซึ่งดำเนินการเข้าถึงเพจ |
| $_SERVER['HTTP_ACCEPT'] | เนื้อหาของรายการ Accept: ในส่วนหัวคำขอปัจจุบัน หากมีอยู่ |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | เนื้อหาของรายการ Accept-Charset: ในส่วนหัวคำขอปัจจุบัน หากมีอยู่ ตัวอย่างเช่น: "iso-8859-1,*,utf-8" |
| $_SERVER['HTTP_HOST'] | เนื้อหาของฟิลด์ Host: ในส่วนหัวคำขอปัจจุบัน หากมี |
| $_SERVER['HTTP_REFERER'] | กำหนดเส้นทางตัวแทนผู้ใช้ไปยังที่อยู่ของเพจที่อยู่ก่อนหน้าหน้าปัจจุบัน ถ้ามี กำหนดโดยการตั้งค่าตัวแทนผู้ใช้ ตัวแทนผู้ใช้บางรายเท่านั้นที่จะตั้งค่ารายการนี้ และบางส่วนยังมีฟังก์ชันการแก้ไข HTTP_REFERER อีกด้วย สรุปคือมูลค่าไม่น่าเชื่อถือ - |
| $_SERVER['HTTPS'] | ตั้งค่าเป็นค่าที่ไม่ว่างเปล่าหากมีการเข้าถึงสคริปต์ผ่านโปรโตคอล HTTPS |
| $_SERVER['REMOTE_ADDR'] | ที่อยู่ IP ของผู้ใช้ที่ดูหน้าปัจจุบัน |
| $_SERVER['REMOTE_HOST'] | ชื่อโฮสต์ของผู้ใช้ที่กำลังดูหน้าปัจจุบัน ความละเอียดย้อนกลับของ DNS ไม่ได้ขึ้นอยู่กับ REMOTE_ADDR ของผู้ใช้ |
| $_SERVER['REMOTE_PORT'] | หมายเลขพอร์ตที่ใช้บนเครื่องของผู้ใช้เพื่อเชื่อมต่อกับเว็บเซิร์ฟเวอร์ |
| $_SERVER['SCRIPT_FILENAME'] | เส้นทางสัมบูรณ์ของสคริปต์ที่กำลังดำเนินการอยู่ |
| $_SERVER['SERVER_ADMIN'] | ค่านี้ระบุพารามิเตอร์ SERVER_ADMIN ในไฟล์การกำหนดค่าเซิร์ฟเวอร์ Apache หากสคริปต์กำลังทำงานบนโฮสต์เสมือน ค่านี้จะเป็นค่าของโฮสต์เสมือนนั้น (เช่น [email protected]) |
| $_SERVER['SERVER_PORT'] | พอร์ตที่ใช้โดยเว็บเซิร์ฟเวอร์ ค่าเริ่มต้นคือ "80" หากใช้การเชื่อมต่อที่ปลอดภัยด้วย SSL ค่านี้จะเป็นพอร์ต HTTP ที่ผู้ใช้กำหนด |
| $_SERVER['SERVER_SIGNATURE'] | สตริงที่มีเวอร์ชันเซิร์ฟเวอร์และชื่อโฮสต์เสมือน |
| $_SERVER['PATH_TRANSLATED'] | พาธพื้นฐานของระบบไฟล์ (ไม่ใช่รูทเอกสาร) ซึ่งเป็นที่ตั้งของสคริปต์ปัจจุบัน นี่เป็นผลลัพธ์หลังจากที่เซิร์ฟเวอร์ถูกจำลองภาพจากเส้นทางเสมือนไปสู่เส้นทางจริง |
| $_SERVER['SCRIPT_NAME'] | ประกอบด้วยเส้นทางไปยังสคริปต์ปัจจุบัน สิ่งนี้มีประโยชน์เมื่อเพจจำเป็นต้องชี้ไปที่ตัวมันเอง ค่าคงที่ __FILE__ ประกอบด้วยพาธแบบเต็มและชื่อไฟล์ของสคริปต์ปัจจุบัน (เช่น ไฟล์รวม) |
| $_SERVER['SCRIPT_URI'] | URI ใช้เพื่อระบุเพจที่จะเข้าถึง ตัวอย่างเช่น "/index.html" |
PHP $_REQUEST ใช้เพื่อรวบรวมข้อมูลที่ส่งโดยแบบฟอร์ม HTML
ตัวอย่างต่อไปนี้แสดงแบบฟอร์มที่มีช่องป้อนข้อมูลและปุ่มส่ง เมื่อผู้ใช้ส่งข้อมูลแบบฟอร์มโดยคลิกปุ่ม "ส่ง" ข้อมูลแบบฟอร์มจะถูกส่งไปยังไฟล์สคริปต์ที่ระบุในแอตทริบิวต์การกระทำของแท็ก <form> ในตัวอย่างนี้ เราระบุไฟล์เพื่อจัดการข้อมูลในแบบฟอร์ม หากคุณต้องการให้ไฟล์ PHP อื่นจัดการข้อมูลนี้ คุณสามารถแก้ไขชื่อไฟล์สคริปต์ที่ระบุได้ จากนั้นเราสามารถใช้ตัวแปรซูเปอร์โกลบอล $_REQUEST เพื่อรวบรวมข้อมูลฟิลด์อินพุตในรูปแบบ:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">ชื่อ: <input type="text" name="fname"><input type ="ส่ง"></form><?php $name = $_REQUEST['fname']; echo $name;
PHP $_POST ถูกนำมาใช้กันอย่างแพร่หลายในการรวบรวมข้อมูลในแบบฟอร์ม ระบุคุณลักษณะนี้ในแท็กรูปแบบ HTML: "method="post"
ตัวอย่างต่อไปนี้แสดงแบบฟอร์มที่มีช่องป้อนข้อมูลและปุ่มส่ง เมื่อผู้ใช้ส่งข้อมูลแบบฟอร์มโดยคลิกปุ่ม "ส่ง" ข้อมูลแบบฟอร์มจะถูกส่งไปยังไฟล์สคริปต์ที่ระบุในแอตทริบิวต์การกระทำของแท็ก <form> ในตัวอย่างนี้ เราระบุไฟล์เพื่อจัดการข้อมูลในแบบฟอร์ม หากคุณต้องการให้ไฟล์ PHP อื่นจัดการข้อมูลนี้ คุณสามารถแก้ไขชื่อไฟล์สคริปต์ที่ระบุได้ จากนั้นเราสามารถใช้ตัวแปรซูเปอร์โกลบอล $_POST เพื่อรวบรวมข้อมูลฟิลด์อินพุตในรูปแบบ:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">ชื่อ: <input type="text" name="fname"><input type ="submit"></form><?php $name = $_POST['fname']; echo $name; ?></body></html>
นอกจากนี้ PHP $_GET ยังใช้กันอย่างแพร่หลายในการรวบรวมข้อมูลแบบฟอร์ม ระบุคุณลักษณะนี้ในแท็กรูปแบบ HTML: "method="get"
$_GET ยังสามารถรวบรวมข้อมูลที่ส่งใน URL
สมมติว่าเรามีหน้า HTML ไฮเปอร์ลิงก์ที่มีพารามิเตอร์:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">ทดสอบ $GET</a></body></html>
เมื่อผู้ใช้คลิกที่ลิงก์ "ทดสอบ $GET" พารามิเตอร์ "หัวเรื่อง" และ "เว็บ" จะถูกส่งไปยัง "test_get.php" คุณสามารถใช้ตัวแปร $_GET ในไฟล์ "test_get.php" เพื่อรับสิ่งนี้ ข้อมูล.
ตัวอย่างต่อไปนี้แสดงโค้ดของไฟล์ "test_get.php":
<html><body><?php echo "Study " . $_GET['subject'] . ที่ " . $_GET['web'];?></body></html>
เคล็ดลับ: หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ $_POST และ $_GET โปรดไปที่บท PHP Forms ของเรา