บทนำ
ชื่อตัวแปรใน PHP เริ่มต้นด้วยเครื่องหมาย $ ตามด้วยตัวอักษร (A-Z ตัวพิมพ์ใหญ่หรือเล็ก) หรือ underscore และตามด้วยตัวอักษร ตัวเลข หรือ underscore จำนวนเท่าไรก็ได้ ชื่อตัวแปรใน PHP แยกตัวพิมพ์ใหญ่-เล็ก (case sensitive)
ไวยากรณ์
// valid variables $var = 10; $VAR = "Hello"; // different from $var $marks_1 = 67; $_val = 0; // invalid variables var = 10; // not starting with $ $4sqr = 16; // not starting with letter/_ $my name = "Hello"; // white space not allowed in variable name $my$name = "Hello"; // $ character cannot be used after first position
ตัวแรกยังสามารถกำหนดค่าโดยอ้างอิง (by reference) จากตัวแปรอื่นได้ เพื่อกำหนดค่าโดยอ้างอิง ให้เติมเครื่องหมาย & นำหน้าชื่อตัวแปรใน expression การเปลี่ยนค่าของหนึ่งจะสะท้อนในอีกตัว
ตัวอย่าง
<?php $var1 = "Hello"; $var2 = &$var1; echo $var1 . " " . $var2 . "\n"; $var2 = "Hi there"; echo $var1 . " " . $var2 . "\n"; ?>
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้
Hello Hello Hi there Hi there
ตัวแปรที่ยังไม่ initialize จะมีค่า default ขึ้นกับ context ของการใช้งาน ตัวอย่าง integer และ float variables คือ 0 boolean คือ FALSE และ string variable คือ empty string แม้ PHP เวอร์ชันใหม่จะแจ้ง notice
ตัวอย่างต่อไปนี้แสดงผลของ uninitialized variable
ตัวอย่าง
<?php $var1 = 10; $var2 = $var1 + $var2; echo $var1 . " " . $var2 . "\n"; $x = "Hello"; unset($x); var_dump($x); // uninitialized ?>
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้
10 10 NULL PHP Notice: Undefined variable: var2 PHP Notice: Undefined variable: x
ตัวอย่าง uninitialized variable ใน cumulative addition operator
ตัวอย่าง
<?php $sum = $sum + 10; var_dump($sum); ?>
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้
int(10) PHP Notice: Undefined variable: sum
ในตัวอย่างต่อไป default object ถูกสร้างจาก empty value พร้อม warning
ตัวอย่าง
<?php $obj->name = "XYZ"; var_dump($obj); ?>
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้
object(stdClass)#1 (1) { ["name"]=> string(3) "XYZ" } PHP Warning: Creating default object from empty value