ตัวแปรใน PHP: การประกาศและการใช้งาน
ในบทเรียนที่แล้ว เราได้เรียนรู้เกี่ยวกับไวยากรณ์พื้นฐานของ PHP รวมถึง Statements และ Comments ในบทนี้ เราจะมาเจาะลึกเรื่อง ตัวแปร (Variables) ซึ่งเป็นหัวใจสำคัญของการเขียนโปรแกรมทุกภาษา ตัวแปรคือที่เก็บข้อมูลที่เราสามารถนำไปใช้และเปลี่ยนแปลงได้ตลอดเวลา
ตัวแปรคืออะไร?
ลองจินตนาการว่าตัวแปรคือกล่องที่เราสามารถใส่ข้อมูลต่างๆ ลงไปได้ กล่องแต่ละใบมีชื่อ (ชื่อตัวแปร) และเราสามารถเปิดกล่องเพื่อดูหรือเปลี่ยนแปลงข้อมูลที่อยู่ข้างในได้
ใน PHP ตัวแปรถูกใช้เพื่อเก็บข้อมูลหลากหลายประเภท เช่น ตัวเลข ข้อความ หรือแม้แต่ข้อมูลที่ซับซ้อนกว่านั้น
การประกาศตัวแปรใน PHP
ใน PHP การประกาศตัวแปรทำได้ง่ายมาก เพียงแค่ใช้เครื่องหมาย $ (dollar sign) ตามด้วยชื่อของตัวแปร
<?php
$name;
$age;
$city;
?>
จากตัวอย่างข้างต้น เราได้ประกาศตัวแปรสามตัว ได้แก่ $name, $age, และ $city แต่ในขณะนี้ ตัวแปรเหล่านี้ยังไม่มีค่าใดๆ
ข้อควรรู้:
- ชื่อตัวแปรใน PHP ต้องเริ่มต้นด้วยเครื่องหมาย
$เสมอ - ชื่อตัวแปรสามารถประกอบด้วยตัวอักษร (a-z, A-Z), ตัวเลข (0-9) และเครื่องหมาย underscore (
_) - ชื่อตัวแปรต้องไม่เริ่มต้นด้วยตัวเลข
- PHP เป็นภาษาที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (Case-sensitive) ดังนั้น
$nameและ$Nameถือเป็นตัวแปรคนละตัวกัน
การกำหนดค่าให้ตัวแปร
เมื่อเราประกาศตัวแปรแล้ว ขั้นตอนต่อไปคือการกำหนดค่า (Assign) ให้กับตัวแปรนั้น เราใช้เครื่องหมาย = (เท่ากับ) เพื่อกำหนดค่าให้กับตัวแปร
<?php
$name = "John Doe";
$age = 30;
$city = "New York";
?>
ในตัวอย่างนี้ เราได้กำหนดค่าให้กับตัวแปรแต่ละตัว:
$nameมีค่าเป็นข้อความ "John Doe"$ageมีค่าเป็นตัวเลข 30$cityมีค่าเป็นข้อความ "New York"
ข้อควรรู้: PHP เป็นภาษาที่ dynamically typed หมายความว่าเราไม่จำเป็นต้องระบุชนิดข้อมูล (Data Type) ของตัวแปรตอนประกาศ PHP จะทำการตรวจสอบชนิดข้อมูลเองโดยอัตโนมัติตามค่าที่เรากำหนดให้
การใช้งานตัวแปร
เมื่อเรามีตัวแปรที่เก็บข้อมูลแล้ว เราสามารถนำตัวแปรเหล่านั้นไปใช้งานได้ ตัวอย่างเช่น การแสดงผลค่าของตัวแปรโดยใช้ฟังก์ชัน echo
<?php
$name = "John Doe";
$age = 30;
$city = "New York";
echo "My name is " . $name . ", I am " . $age . " years old and I live in " . $city . ".";
?>
ผลลัพธ์ที่ได้:
My name is John Doe, I am 30 years old and I live in New York.
ในตัวอย่างนี้ เราใช้เครื่องหมาย . (dot operator) เพื่อเชื่อมข้อความ (String Concatenation) เข้ากับค่าของตัวแปร
ขอบเขตของตัวแปร (Variable Scope)
ขอบเขตของตัวแปรหมายถึงบริเวณที่ตัวแปรนั้นสามารถเข้าถึงและใช้งานได้ ใน PHP มีขอบเขตของตัวแปรหลักๆ 3 ประเภท:
- Local Scope: ตัวแปรที่ถูกประกาศภายในฟังก์ชัน จะสามารถใช้งานได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น
- Global Scope: ตัวแปรที่ถูกประกาศภายนอกฟังก์ชัน จะสามารถใช้งานได้ในส่วนของโค้ดที่อยู่นอกฟังก์ชัน แต่ถ้าต้องการใช้งานภายในฟังก์ชัน จะต้องใช้ keyword
global - Static Scope: ตัวแปรที่ถูกประกาศภายในฟังก์ชันด้วย keyword
staticจะมีค่าคงอยู่ แม้ว่าฟังก์ชันจะทำงานเสร็จสิ้นไปแล้วก็ตาม
Local Scope
<?php
function myFunction() {
$x = 10; // $x มี local scope
echo "Value of x inside the function: " . $x . "<br>";
}
myFunction();
// echo "Value of x outside the function: " . $x; // จะเกิด error เพราะ $x ไม่สามารถเข้าถึงได้จากภายนอก function
?>
Global Scope
<?php
$x = 10; // $x มี global scope
function myFunction() {
global $x;
echo "Value of x inside the function: " . $x . "<br>";
}
myFunction();
echo "Value of x outside the function: " . $x;
?>
ในตัวอย่างนี้ เราใช้ global $x; ภายในฟังก์ชัน myFunction() เพื่อบอกว่าเราต้องการเข้าถึงตัวแปร $x ที่อยู่ใน global scope
Static Scope
<?php
function myFunction() {
static $x = 0;
$x++;
echo "Value of x inside the function: " . $x . "<br>";
}
myFunction(); // Output: Value of x inside the function: 1
myFunction(); // Output: Value of x inside the function: 2
myFunction(); // Output: Value of x inside the function: 3
?>
สังเกตว่าค่าของ $x จะถูกเก็บรักษาไว้ในแต่ละครั้งที่ฟังก์ชัน myFunction() ถูกเรียกใช้งาน
สรุป
ในบทนี้ เราได้เรียนรู้เกี่ยวกับการประกาศ การกำหนดค่า และการใช้งานตัวแปรใน PHP รวมถึงเรื่องของขอบเขตของตัวแปร ซึ่งเป็นสิ่งสำคัญที่ต้องเข้าใจเพื่อหลีกเลี่ยงข้อผิดพลาดในการเขียนโปรแกรม
ในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับชนิดข้อมูลพื้นฐาน (Data Types) ใน PHP ซึ่งเป็นพื้นฐานสำคัญในการจัดการข้อมูลในโปรแกรมของเรา