การสร้างเว็บเพจโดยใช้ภาษา
PHP บทที่ 11
การใช้ตัวแปรเป็นชื่อของตัวแปร
ภาษา PHP เปิดโอกาสให้เราสามารถเลือกหรือเปลี่ยนชื่อของตัวแปรได้
ตัวอย่างเช่น
| <?
$a = "var1";
$$a = 10.3;
echo "$a ${$a} $$a <BR>\n";
echo "$var1 <BR>\n";
?> |
จากตัวอย่างข้างบน
เรากำหนดให้ตัวแปร $a เก็บสตริงค์ "var1" และจะใช้เป็นชื่อของตัวแปรอีกตัวหนึ่ง
โดยทางอ้อม $$a เป็นการอ้างถึงตัวแปรที่มีชื่อเดียวกับค่าของตัวแปร
$a (ในกรณีนี้คือ var1) ดังนั้นถ้าเราเขียนว่า $$a หรือ $var1 ก็หมายถึงตัวแปรตัวเดียวกัน
ถ้าต้องการแสดงค่าของ $$a โดยใช้คำสั่ง echo โดยอยู่ในสตริงค์ (ระหว่าง
double quotations) เราจะต้องเขียน ${$a} ไม่ใช่ $$a เพราะว่า ถ้าเขียนตามแบบหลัง
ตัวแปลคำสั่งจะอ่านค่า $a ก่อนแล้วแทนที่ลงในข้อความ ซึ่งจะได้ $var1แทนที่จะเป็นการอ่านค่าของ
$var1
เทคนิคนี้ยังสามารถใช้ได้กับฟังก์ชัน
ตัวอย่างเช่น
<?
function foobar() {
echo "foobar<BR>\n";
}
function callFunc ($f) {
if ( is_string($f) == true) {
$f();
}
}
callFunc("foobar");
?> |
ตัวอย่างข้างบนอาจจะทำให้เกิดปัญหาถ้าสมมุติว่า
$f เป็นชื่อของฟังก์ชันที่ไม่มีอยู่จริง วิธีตรวจสอบคือ การใช้ฟังก์ชัน
function_exists() ดังต่อไปนี้
<?
function MyFunc() {
print ("ok..<BR>\n");
}
$f="myFunc";
if ( function_exists($f) ) {
$f();
}
else {
echo "$f does not exist!";
}
?> |
|