Giới thiệu
Trong PHP, có thể đặt tên biến một cách tự động. Một biến như vậy sử dụng giá trị của một biến hiện có làm tên. Một biến biến được xác định với hai dấu $ làm tiền tố
Ví dụ
<?php $var1="xyz"; //normal variable $$var1="abcd";//variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo "{$$var1} $xyz"; ?>
Đầu ra
Tập lệnh này tạo ra kết quả sau
xyz abcd abcd abcd
Lưu ý rằng giá trị của $$ var1 giống với $ xyz, xyz là giá trị của $ var1.
Giá trị số của biến bình thường không thể được sử dụng làm biến biến
Ví dụ
<?php $var1=100; //normal variable $$var1=200;//variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo $100; ?>
Đầu ra
Khi tập lệnh này được thực thi, kết quả sau sẽ được hiển thị
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6
Cũng có thể xác định một biến biến theo chỉ số con của mảng. Trong ví dụ sau, một biến biến được định nghĩa bằng cách sử dụng phần tử thứ 0 của một mảng bình thường
Ví dụ
<?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"; ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau -
aa 10 10
Thuộc tính lớp cũng có thể truy cập được bằng cách sử dụng tên thuộc tính biến. Tính năng này hữu ích khi tên đề xuất được tạo thành từ một mảng.
Ví dụ
<?php var $u = "Architecture"; var $ugCourses = array("CSE","MECH","CIVIL"); $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "\n"; echo $obj->{$courses}[0] . "\n"; ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau -
Architecture CSE