Giới thiệu
Trong PHP, có thể đặt tên biến động态. Biến như vậy dùng giá trị của biến hiện có làm tên. Biến biến (variable variable) định nghĩa với hai dấu $ làm tiền tố.
Ví dụ
<?php $var1 = "xyz"; // biến bình thường $$var1 = "abcd"; // biến biến echo $var1 . "\n"; echo $$var1 . "\n"; echo "{$$var1} $xyz"; ?>Kết quả
xyz abcd abcd abcd
Lưu ý giá trị $$var1 giống $xyz, xyz là giá trị $var1.
Giá trị số của biến bình thường không dùng làm biến biến.
Ví dụ
<?php $var1 = 100; $$var1 = 200; echo $var1 . "\n"; echo $$var1 . "\n"; echo $100; ?>
Kết quả
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6Cũng có thể định nghĩa biến biến qua chỉ mục mảng. Ví dụ định nghĩa biến biến dùng phần tử 0 của mảng bình thường:
Ví dụ
<?php $var1 = array("aa", "bb"); ${$var1[0]} = 10; echo $var1[0] . "\n"; echo $aa . "\n"; echo ${$var1[0]} . "\n"; ?>Kết quả
aa 10 10
Thuộc tính class cũng truy cập được bằng tên thuộc tính biến (variable property names). Tính năng hữu ích khi tên thuộc tính tạo từ mảng.
Ví dụ
<?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"; ?>Kết quả
Architecture CSE