การสร้างเว็บเพจโดยใช้ภาษา 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!"; }
?> |
|