square-right$GLOBALS

ฺBY Anuthep Thamlikhit 630710686

ก่อนที่เราจะพูดถึงเรื่อง $GLOBALS และ$SERVER เราต้องรู้ก่อนว่า Superglobals ใน PHP คืออะไร

ตัวแปรทั่วโลกของ PHP - Superglobals ตัวแปรที่กำหนดไว้ล่วงหน้าบางตัวใน PHP คือ "Superglobals" หมายความว่า สามารถเข้าถึงได้ตลอดเวลาโดยไม่คำนึงถึงขอบเขตและสามารถเข้าถึงได้จากฟังก์ชัน คลาส หรือไฟล์ใดๆ โดยไม่ต้องทำอะไรเพิ่มเติม

GLOBALS in PHP

GLOBALS in PHP เป็นตัวแปรใน Superglobal เป็นอาร์เรย์ที่เก็บตัวแปรขอบเขตส่วนกลางทั้งหมด ใช้เพื่อเข้าถึงตัวแปรส่วนกลางจากทุกที่ในโปรแกรม PHP หากต้องการใช้ตัวแปร Global ภายในฟังก์ชันหรือต้องการใช้ค่าตัวแปรนอกฟังก์ชัน จะต้องกำหนดให้ตัวแปรเป็น Global โดยการใช้คีย์เวิร์ด $GLOBALS หรืออ้างอิงถึงตัวแปรเหล่านั้นโดยใช้ไวยากรณ์ $GLOBALS['ชื่อตัวแปร'] หรือ global

syntax

$GLOBALS['ชื่อตัวแปร'] หรือ global ชื่อตัวแปร

ตัวอย่างพร้อมคำอธิบาย

ตัวอย่างที่ไม่ใส่ $GLOBALS หรือ global

เมื่อไม่ใส่ $GLOBALS หรือ global ใน PHP ก็จะไม่ปรากฏผลลัพธ์เมื่ออ้างถึงตัวแปรโดยไม่มีไวยากรณ์ $GLOBALS

<?php
$x = 75;
  
function myfunction() {
  echo $x;
}

myfunction()
?>

ตัวอย่างที่มีการอ้างถึง $GLOBALS

EX 1.1 ) เราสร้างตัวแปร x ให้มีค่าเท่ากับ 75 และสร้างฟังก์ชันชื่อ myfunction โดยใช้คำสั่ง $GLOBALS [] และทำการใส่ชื่อตัวแปรลงในวงเล็บเช่น $GLOBALS['x' ] เป็นต้น และเมื่อทำคำสั่งเสร็จภายในฟังก์ชัน เมื่อใดที่เราเรียกใช้ฟังก์ชัน เราก็จะได้ค่า x หรือ 75 ออกมา

EX1.2) เราสร้างตัวแปร x ให้มีค่าเท่ากับ 15 และสร้างฟังก์ชันชื่อ myfunction และ ใช้คำสั่ง globalตามด้วยชื่อตัวแปร เช่น global $x ในการการเข้าถึง x จากด้านนอกฟังก์ชัน หลังจากนั้นเมื่อเราเรียกใช้ฟังก์ชัน ฟังก์ชันก็จะสามารถเข้าถึงตัวแปร x จากด้านนอกได้และได้ค่า x หรือ 15 ออกมา

แสดงผลลัพธ์

นี่คือความแตกต่างจากภาษาการเขียนโปรแกรมอื่น ๆ เพราะการที่มีตัวแปร Global ให้ใช้งาน เราจึงไม่ต้องอ้างอิงถึงตัวแปร Global โดยเฉพาะ

เปรียบเทียบกับ Python และ Javascript

Global in Python

ใน Python ตัวแปร Global คือตัวแปรที่กำหนดไว้ภายนอกฟังก์ชันหรือคลาสใด ๆ ทำให้สามารถเข้าถึงได้จากทุกที่ภายในโปรแกรม ตัวแปรร่วมไม่ได้จำกัดอยู่เพียงขอบเขตเฉพาะเหมือนตัวแปรภายในเครื่องที่ถูกกำหนดไว้ภายในฟังก์ชันเฉพาะและสามารถเข้าถึงได้ภายในฟังก์ชันนั้นเท่านั้น ตัวแปรร่วมมีบทบาทสำคัญในการจัดเก็บข้อมูลที่จำเป็นต้องเข้าถึงและจัดการในขอบเขตหรือฟังก์ชันต่าง ๆ ภายในโปรแกรม การที่เรากำหนดตัวแปรให้เป็นส่วนกลางจะทำให้มีความพร้อมในการใช้งานสำหรับฟังก์ชันและโมดูลทั้งหมดในโค้ดเบสของคุณ

ตัวอย่าง PHP และ Python พร้อมคำอธิบาย

  1. ใน PHP เมื่อตัวแปร x เท่ากับ cat และ y เท่ากับ dog ภายในฟังก์ชันเราประกาศ global ให้ x เพื่อให้ภายในฟังก์ชันเข้าถึงค่าของ x และปริ้นออกมาได้ หรือ เราจะใช้ $GLOBALS['ชื่อตัวแปร'] อย่างเช่น $GLOBALS['y'] ก็สามารถเข้าถึง y นอกฟังก์ชันได้เหมือนกัน

  2. ใน Python ตัวแปรที่ถูกสร้างภายนอกฟังก์ชัน เรียกว่าตัวแปรทั่วโลกทุกคนสามารถใช้ตัวแปรทั่วโลกได้ทั้งในฟังก์ชั่นและภายนอกฟังก์ชั่น อย่างเช่นตัวอย่าง สร้างตัวแปร var ให้เป็น global และสร้างปริ้นได้ทั้งนอกและในฟังก์ชัน

  3. ตัวอย่างนี้จะเห็นได้ว่าเรามีตัวแปร x ในฟังก์ชันและถ้าเราทำการปริ้นตัวแปร x นอกฟังก์ชันเลยจะเกิดการ Error เราเลยจำเป็นต้องใช้ตัวแปร globla เข้ามาช่วยให้มันสามารถใช้นอกฟังก์ชันได้และปริ้นออกมาได้

  4. ในตัวอย่างนี้หากต้องการเปลี่ยนค่าของตัวแปรทั่วโลกภายในฟังก์ชัน ให้อ้างอิงตัวแปรโดยใช้ global

แสดงผลลัพธ์

Global in Javascript

ตัวแปรที่ประกาศทั่วโลก (นอกฟังก์ชัน) มีขอบเขตทั่วโลก ตัว Global สามารถเข้าถึงได้จากทุกที่ในโปรแกรม JavaScript โดยตัวแปรที่ประกาศด้วย var, let และ const จะค่อนข้างคล้ายกันเมื่อประกาศนอกบล็อกและร่วมไปถึงอ็อบเจ็กต์ส่วนกลางของ JavaScript ช่วยให้คุณเข้าถึงตัวแปร ฟังก์ชัน อ็อบเจ็กต์ ที่กำหนดไว้ในขอบเขตรวมและพร้อมใช้งานทุกที่ในโค้ดร่วมทั้ง globalThis กับ กระประกาศแบบสร้างObject เช่นกัน

ตัวอย่าง PHP และ Javascript พร้อมคำอธิบาย

  1. PHP เรามีตัวแปร x เท่ากับ 15 และ y เท่ากับ 10 ภายในฟังก์ชันเราประกาศ globalให้ x เพื่อให้ภายในฟังก์ชันเข้าถึงค่าของ x และปริ้นออกมาได้ หรือ เราจะใช้ $GLOBALS['ชื่อตัวแปร'] อย่างเช่น $GLOBALS['y'] ก็สามารถเข้าถึง y นอกฟังก์ชันได้เหมือนกัน

  2. ในตัวอย่างนี้ เราจะประกาศตัวแปรในขอบเขตทั่วโลก เพื่อให้สามารถเข้าถึงได้จากทุกที่ในโปรแกรม เราจะเห็นว่าตัวแปรpetNameถูกประกาศไว้ในขอบเขตสากลและสามารถเข้าถึงได้ง่ายภายในฟังก์ชัน นอกจากนี้ Fruit ถูกประกาศไว้ในฟังก์ชันโดยไม่มีคำสำคัญใดๆ ดังนั้นจึงถือว่าเป็นตัวแปรสากลและสามารถเข้าถึงได้ภายในฟังก์ชันอื่น

  3. Javascript จะมี 1 วิธีคือการใช้ globalThis.ชื่อตัวแปร ก็จะสามารถเข้าถึงได้จากทุกที่ในโปรแกรม

แสดงผลลัพธ์

สรุป

  • PHP: $GLOBALS เป็น superglobal array ที่ให้การเข้าถึงตัวแปรทั้งหมดในสโคป global โดยตรงจากทุกที่ในสคริปต์.

  • Python: ไม่มีโครงสร้างเฉพาะ แต่ใช้คำสั่ง global เพื่อเข้าถึงหรือแก้ไขตัวแปร global ภายในฟังก์ชัน.

  • JavaScript: ตัวแปร global สามารถสร้างได้โดยไม่ใช้ var, let, หรือ const, และเข้าถึงได้จากทุกที่ในสคริปต์.

แหล่งข้อมูลที่ใช้อ้างอิง

Slide:

Clips:

Last updated