แนะนำตัว
ในการเขียนโปรแกรม ขอบเขตหมายถึงขอบเขตที่ตัวแปรสามารถเข้าถึงได้ โดยทั่วไปแล้ว สคริปต์ PHP อย่างง่าย (ไม่มีโครงสร้างใดๆ เช่น ลูป ฟังก์ชัน ฯลฯ) มีขอบเขตเดียว ในแง่ที่ว่า ตัวแปรสามารถใช้ได้ทั่วทั้งโปรแกรมตั้งแต่จุดคำจำกัดความเป็นต้นไป
ตัวแปรในสคริปต์หลักยังมีให้สำหรับสคริปต์อื่น ๆ ที่รวมเข้ากับคำสั่งรวมหรือข้อกำหนด ในตัวอย่างต่อไปนี้ สคริปต์ test.php จะรวมอยู่ในสคริปต์หลัก
นี่คือสคริปต์หลัก
$var=100;include "test.php";?>
ไฟล์ test.script ที่รวมอยู่มีดังนี้ -
echo "ค่าของ \$var ใน testscript.php :" $var;?>
เมื่อรันสคริปต์หลัก ผลลัพธ์ต่อไปนี้จะแสดงขึ้น
ค่าของ $var ใน testscript.php :100
อย่างไรก็ตาม เมื่อสคริปต์มีฟังก์ชันที่ผู้ใช้กำหนด ตัวแปรใดๆ ภายในจะมีขอบเขตในเครื่อง ด้วยเหตุนี้ ตัวแปรที่กำหนดภายใน funcion ไม่สามารถเข้าถึงได้จากภายนอก ตัวแปรที่กำหนดภายนอก (ด้านบน) ฟังก์ชันมีขอบเขตทั่วโลก
ตัวอย่าง
<ก่อน>ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
var=var1=Hellovar=100 var1=PHP Notice:ตัวแปรที่ไม่ได้กำหนด:var ในบรรทัดที่ 5PHP Notice:ตัวแปรที่ไม่ได้กำหนด:var1 ในบรรทัดที่ 8
โปรดทราบว่าตัวแปรส่วนกลางไม่พร้อมใช้งานโดยอัตโนมัติภายในขอบเขตของฟังก์ชันในเครื่อง นอกจากนี้ ฟังก์ชันตัวแปรภายในไม่สามารถเข้าถึงได้จากภายนอก
คำหลักทั่วโลก
การเข้าถึงตัวแปรส่วนกลางภายในขอบเขตท้องถิ่นควรเปิดใช้งานอย่างชัดเจนโดยใช้คำสำคัญสากล สคริปต์ PHP มีดังต่อไปนี้ -
ตัวอย่าง
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
ก่อนเรียกใช้ฟังก์ชัน a =10 b =20inside function a =10 b =20 c =15PHP หมายเหตุ:ตัวแปรที่ไม่ได้กำหนด:c ในบรรทัดที่ 13 หลังฟังก์ชัน a =20 b =20 c =
ขณะนี้สามารถประมวลผลตัวแปรส่วนกลางภายในฟังก์ชันได้ นอกจากนี้ การเปลี่ยนแปลงที่ทำกับตัวแปรส่วนกลางภายในฟังก์ชันจะมีผลในเนมสเปซส่วนกลาง
อาร์เรย์ $GLOBALS
PHP เก็บตัวแปรทั่วโลกทั้งหมดในอาเรย์ที่เชื่อมโยงที่เรียกว่า $GLOBALS ชื่อและค่าของตัวแปรสร้างคู่คีย์-ค่า
ในสคริปต์ PHP ต่อไปนี้ $GLOBALS array ถูกใช้เพื่อเข้าถึงตัวแปรทั่วโลก -
ตัวอย่าง
ผลลัพธ์
ก่อนการเรียกใช้ฟังก์ชัน a =10 b =20c =15PHP Notice:ตัวแปรที่ไม่ได้กำหนด:c บรรทัดที่ 12Notice:ตัวแปรที่ไม่ได้กำหนด:c ในฟังก์ชันบรรทัดที่ 12after a =20 b =20 c =
ตัวแปรคงที่
ตัวแปรที่กำหนดด้วยคีย์เวิร์ดแบบคงที่ไม่ได้เริ่มต้นทุกครั้งที่เรียกใช้ฟังก์ชัน นอกจากนี้ยังคงคุณค่าของการโทรครั้งก่อน
ตัวอย่าง
ผลลัพธ์
ซึ่งจะได้ผลลัพธ์ดังต่อไปนี้
การเรียกใช้ฟังก์ชัน :1 :x =0การเรียกใช้ฟังก์ชัน :2 :x =1การเรียกใช้ฟังก์ชัน :3 :x =2