Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP Variable Variables

บทนำ

ใน PHP สามารถตั้งชื่อตัวแปรแบบไดนามิกได้ ตัวแปรแบบนี้ใช้ค่าของตัวแปรที่มีอยู่เป็นชื่อ ตัวแปรตัวแปร (variable variable) ถูกกำหนดด้วยเครื่องหมาย $ สองตัวเป็น prefix

ตัวอย่าง

<?php $var1 = "xyz"; // normal variable $$var1 = "abcd"; // variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo "{$$var1} $xyz"; ?>

ผลลัพธ์

สคริปต์นี้ให้ผลลัพธ์ดังนี้

xyz abcd abcd abcd

โปรดทราบว่าค่าของ $$var1 เท่ากับ $xyz โดย xyz เป็นค่าของ $var1

ค่าตัวเลขของ normal variable ไม่สามารถใช้เป็น variable variable ได้

ตัวอย่าง

<?php $var1 = 100; // normal variable $$var1 = 200; // variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo $100; ?>

ผลลัพธ์

เมื่อรันสคริปต์นี้ จะได้ผลลัพธ์ดังนี้

PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6

ยังสามารถกำหนด variable variable ในรูปของ array subscript ได้ ในตัวอย่างต่อไปนี้ variable variable ถูกกำหนดโดยใช้ element ที่ 0 ของ normal array

ตัวอย่าง

<?php $var1 = array("aa", "bb"); // normal variable ${$var1[0]} = 10; // variable variable with array element echo $var1[0] . "\n"; echo $aa . "\n"; echo ${$var1[0]} . "\n"; ?>

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

aa 10 10

Class properties ก็เข้าถึงได้ด้วย variable property names ฟีเจอร์นี้มีประโยชน์เมื่อ property name ประกอบด้วย array

ตัวอย่าง

<?php class branches { var $u = "Architecture"; var $ugCourses = array("CSE", "MECH", "CIVIL"); } $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "\n"; echo $obj->{$courses}[0] . "\n"; ?>

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

Architecture CSE