square-root-variableVariable Scope

จินดาพร คุณฑา 620710300

ขอบเขตตัวเเปร

1.Local Variables Scope

มีการเปรียเทียบกับหลาย ๆ ภาษา ดังนี้

  • ภาษา PHP ตัวแปรที่มีการประกาศภายใน Function โดยจะมีขอบเขตเฉพาะภายใน พอการทำงานจบในส่วน Function ตัวแปรนี้ก็จะหายไป และจะไม่มีการปรากฏภายนอกขอบเขต

  • ภาษา C ตัวแปรถูกสร้างภายในฟังก์ชันหรือบล็อก เป็นช่วงว่างระหว่างวงเล็บ { } มองเห็นแค่ในพื้นที่ ที่ประกาศตัวแปรเท่านั้น และตัวแปรในพื้นที่ไม่มีการเชื่อมโยง

  • ภาษา Java ตัวแปรที่ประกาศภายใน และมีขอบเขตแค่ภายใน method ไม่สามารถเข้าถึงจากmethod ภายนอก ในส่วนของข้อมูลที่ถูกเก็บไว้ใน local variable มักจะถูกกำหนดค่าเริ่มต้นในส่วน block ที่ตัวแปรได้ทำการประกาศไว้

  • ภาษา Python ตัวแปรที่ถูกสร้างขึ้นภายในฟังก์ชันที่อยู่ในขอบเขตของฟังก์ชัน และจะใช้ได้แค่เฉพาะในส่วนภายใน

<?php  
    function local_var()  
    {  
        $num = 45;  //local variable  
        echo "Local variable declared inside the function is: ". $num;  
    }  
    local_var();  
?> 

ตัวอย่างการใช้งาน


2.Global Variables Scope

  • ภาษา PHP ตัวแปรที่ประกาศไว้ภายนอกฟังก์ชัน และสามารถเข้าถึงได้ทุกที่ในฌโปรแกรม ไม่ว่าจะอยูในฟังก์ชันไหนก็ตาม รวมถึงฟังก์ชัน มีประโยชน์สำหรับการจัดเก็บข้อมูลที่จำเป็นต้องการเข้าถึงและทำการแก้ไข และมีการใช้ key

  • ภาษา C เป็นตัวแปรที่สร้างขึ้นภายนอกฟังก์ชัน สามารถมองเห็นได้ในทุกส่วนของโปรแกรม จะเรียกอีกอย่างว่า File Scope เนื่องจากขอบเขตของตัวระบุเริ่มต้นที่จุดต้นของไฟล์และจุดสิ้นสุดของไฟล์

  • ภาษา Java ไม่มีตัวแปรระดับ global โดยตรง

  • ภาษา Python ตัวแปรที่ประกาศไว้ภายนอกฟังก์ชัน ซึ่งสามารถเข้าถึงGlobel variable ได้จากภายนอกหรือภายในของฟังก์ชัน

circle-info

เนื่องจากภาษา java เป็นภาษาเชิงวัตถุ ทุกอย่างจึงมีการประกาศภายใน class ทั้งนี้หากต้องการตัวแปรสามารถเข้าถึงได้ทั่วโปรแกรม โดยจะใช้ static Variable แทน

ตัวอย่างการใช้งาน


3.Static Variables Scope

  • ภาษา PHP อยู่ในฟังก์ชันภายในเท่านั้น รักษาค่าของมันไว้ในระหว่างการเรียกฟังก์ชันหรือเมธอด โดยจะเริ่มทำงานครั้งเดียว และค่าจะคงอยู่ตลอดการเรียกใช้ฟังก์ชันหรือเมธอด แม้จะเรียกหลายครั้ง

  • ภาษา C มีความแตกต่างจากภาษาอื่นๆ โดยการใช้งานส่งผลต่อ scope เเละ lifetime ของตัวแปร

  • ภาษา Java เป็นตัวแปรที่ไม่ใช่ instance หรือตัวแปร static ถือว่าเป็นตัวแปรภายในระบบ เช่น พารามิเตอร์ในเมธอด ขอบเขตคือ ถูกจำกัดอยู่ภายในบล็อกที่ทำการประกาศไว้ การทำงานจะสิ้นสุดเมื่อทำงานออกจากบล็อก

  • ภาษา Python ไม่มีการใช้ static ในแบบ ภาษาที่กำหนดไว้ แต่จะมีการจำลองพฤติกรรมนี้ได้ด้วยการใช้ตัวแปร class

circle-info

Python ไม่มี Static variabel โดยตรงเนื่องจาก ภาษามีการออกเเบบมาให้เป็น ภาษา dynamic เเละ

มีการเน้นการใช้งานไปทาง OOP จึงทำงานเป็นเพียงการจำลองพฤติกรรม

ตัวอย่างการใช้งาน


ตารางเปรียบเทียบ

หัวข้อ
PHP
C
Java
Python

Lacal Scope

ตัวเเปลที่ประกาศในฟังก์ชัน หรือ บล็อคใช้ได้เฉพาะในนั้น

ตัวอย่างในฟังก์ชัน หรือ บล็อค มีส่วนจำกัดเฉพาะในฟังก์ชัน

ตัวเเปรในเมธอด หรือ บล็อคที่ใช้เฉพาะภายในบล็อค

ตัวเเปรในฟังก์ชันจำกัดเฉพาะในฟังก์ชัน

Global Scope

ใช้ golbal หรือ $GLOBAL[ ] เพื่อเข้าถึงตัวเเปรนอกฟังก์ชัน

ตัวเเปรที่ประกาศนอกฟังก์ชันเป็น global

ไม่มี global เเต่ใช้ static ในคลาส

ใช้ global เพื่อเข้าถึงตัวเเปรภายนอกฟังก์ชัน

Static Scope

ใช้ static ให้ตัวเเปรคงค่าระหว่างการเรียกใช้ฟังก์ชัน

static ใช้ในฟังก์ชัน หรือบล็อค

ตัวเเปร static อยู่ในระดับคลาส

ไม่มี static เเต่มี nonlocal สำหรับ nesed

สรุป

  • PHP และ Python มีการจัดการขอบเขตที่ยืดหยุ่นและเหมาะสำหรับการใช้งานในงานสคริปต์

  • C และ Java มีการจัดการขอบเขตที่เข้มงวดกว่า โดยเฉพาะ Java ที่เน้นการใช้งานในเชิงวัตถุ ซึ่งต่างจาก PHP ที่สามารถจัดการตัวแปร Global ได้ง่ายกว่า


Presentation

Video Clip


Reference

PHP :

(2024).Free Learning Platform For Better Future.สืบค้น 6 กันยายน 2564,arrow-up-right Yash Agarwal.(2024).PHP Variables Scope.สืบค้น 6 กันยายน 2564,arrow-up-right (2023).What is variable scope in PHP and why is it important to understand?.สืบค้น 6 กันยายน 2564,arrow-up-right

C :

W3Schools.(n.d.).C Variable Scope.สืบค้น 7 กันยายน 2564,arrow-up-right

Java :

(2024).Scope of Variables In Javaarrow-up-right

Python :

Copyright.(2013).xpert-programming-tutor.comarrow-up-right (2024).Python Scope of Variablesarrow-up-right

Last updated