วันศุกร์ที่ 13 พฤษภาคม พ.ศ. 2559

Step 4 การประกาศตัวแปร PHP

การประกาศตัวแปรใน PHP

ใน PHP เราจะใช้เครื่องหมาย $ นำหน้าชื่อตัวแปรเสมอ

    $txt = "ข้อความ";
    $x = 5;
    $y = 10.5;

การกำหนดค่าให้กับตัวแปรใน PHP สามารถทำได้เลย โดยที่ไม่จำเป็นต้องกำหนดค่าเนื่องจาก PHP เป็นภาษาที่ Dynamic Type หรือ Loosely Type คือ PHP Complier จะทำการแปลงตัวแปรเป็นชนิดที่เหมาะสมให้เอง
จากตัวอย่างเราจะกำหนดค่า คำว่า "ข้อความ" ให้กับตัวแปร $txt ดังนั้นตัวแปร $txt จะมี Data Type เป็น String(ข้อความ) ทันที
ส่วน $x ถูกกำหนดค่าเป็น 5 ดังนั้น Data Type จึงเป็น int(จำนวนเต็ม) และเช่นเดียวกันเมื่อ $y ถูกกำหนดค่าเป็น 10.5 ซึ่งเป็นเลขทศนิยม Data Type ของ $y จึงกลายเป็น float(เลขทศนิยม)

Scope ของตัวแปร

ตัวแปรในทุกๆ ภาษาจะเหมือนกันคือจะมีอายุการใช้งาน เนื่องจากตัวแปรแต่ละตัวจะจองพื้นที่ในหน่วยความจำ ของ Server ดังนั้นเพื่อให้โปรแกรมมีประสิทธิภาพสูงสุด ตัวแปรแต่ละตัวจะมีอายุการใช้งาน การกำหนดอายุการใช้งานเรียกว่า Scope
การเขียนโปรแกรมที่ดีเราต้องมีการกำหนด Scope ของตัวแปรอย่างเหมาะสม โดยใน PHP จะมี Scope ของตัวแปรอยู่ 2 อันดับ ดังนี้ - local - global

Local Scope

ตัวแปรที่ปรกาศวอยู่ภายใน function จะเป็น Local Variable จะเรียกใช้งานได้ภายใน function ที่ประกาศเท่านั้น พอหมด function ตัวแปรแบบ Local นี้จะหายไปทันที

function myTest() {
    $x = 5; // Local scope

    // สามารถเรียกใช้ $x ได้ใน function นี้เท่านั้น
    echo "Variable x inside function is: $x";
} 
myTest();

// การเรียกใช้ ตัวแปร $x ภายนอก Scope ของตัวแปร $x ทำให้เกิด error
echo "Variable x outside function is: $x";


Global Scope

ตัวแปรที่ประกาศอยู่ภายนอก function จะเป็น Global Scope จะถูกเข้าถึงได้เฉพาะภายนอก function เท่านั้น
Code ในตัวอย่างนี้ $x จะเป็น Global Scope จะไม่สามารถเรียกได้จากฟังก์ชั่น myTest() จึงทำให้เกิด Error เกิดขึ้น
ส่วนการ echo ในบรรทัดสุดท้ายเป็นการเข้าถึงตัวแปร $x จากภายนอก function จึงไม่เกิด Error ใดๆ

$x = 5; // Global scope

function myTest() {
    // การเข้าถึงตัวแปร $x ที่เป็น Global Scope จึงทำให้เกิด error
    echo "<p>Variable x inside function is: $x</p>";
} 
myTest();

echo "<p>Variable x outside function is: $x</p>";


การจะเข้าถึงตัวแปรที่เป็น Global Scope นั้นทำได้ 2 วิธีคือ การเข้าถึงโดยใช้ global keyword

$x = 5;
$y = 10;

function myTest() {
    global $x, $y;
    $y = $x + $y;
}

myTest();
echo $y; // outputs 15


จากตัวอย่างเราจะนำเอาค่าว่า global ไปวางไว้หน้าตัวแปร เพื่อจะบอก PHP ว่าเรากำลังจะเข้าถึงตัวแปร $x และ $y ที่เป็น Global Scope ไม่ใช่ Local Scope
อีกวิธีจะเป็นการเข้าถึงได้จากตัวแปร $GLOBALS[index] ซึ่งตัว index จะเป็นชื่อตัวแปรที่เป็น Global Scope

$x = 5;
$y = 10;

function myTest() {
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
} 

myTest();
echo $y; // outputs 15


ผลลัพธ์ที่ได้จะเหมือนกับตัวอย่างที่แล้วแต่จะเป็นการเข้าถึงตัวแปร $x โดยผ่านทาง $GLOBALS['x'] และ $y ผ่านทาง $GLOBALS['y']

Static

การประกาศตัวแปรแบบ Static คือโดยทั่วไปการทำงานเมื่อจบฟังก์ชั่น ตัวแปรนั้นจะหายไป แต่ในบางกรณีเราอยากให้ตัวแปรที่เป็น Local นั้นอยู่ต่อไป

function myTest() {
    static $x = 0;
    echo $x;
    $x++;
}

myTest();
myTest();
myTest();


จากตัวอย่าง ผลลัพธ์จะเป็น 0, 1, 2 ไล่ไปเรื่อยๆขึ้นอยู่กับเรียก myTest() กี่ครั้ง เพราะแต่ละรอบของการทำงานตัวแปร $x จะยังคงมีชีวิตอยู่เพื่อรอการเรียกใช้งานครั้งถัดไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...