- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
PHP variable Variables
Introduction
In PHP, it is possible to set variable name dynamically. Such a variable uses value of an existing variable as name. A variable variable is defined with two $ signs as prefix
Example
<?php $var1="xyz"; //normal variable $$var1="abcd";//variable variable echo $var1 . "
"; echo $$var1 . "
"; echo "{$$var1} $xyz"; ?>
Output
This script produces following output
xyz abcd abcd abcd
Note that value of $$var1 is same as $xyz, xyz being value of $var1.
Numeric value of normal variable cannot be used as variable variable
Example
<?php $var1=100; //normal variable $$var1=200;//variable variable echo $var1 . "
"; echo $$var1 . "
"; echo $100; ?>
Output
When this script is executed, following result is displayed
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6
It is also possible to define a variable variable in terms of an array subscript. In following example, a variable variable is defines using 0th element of a normal array
Example
<?php $var1=array("aa","bb"); //normal variable ${$var1[0]}=10;//variable variable with array element echo $var1[0] . "
"; echo $aa . "
"; echo ${$var1[0]} . "
"; ?>
Output
This will produce following result −
aa 10 10
Class properties are also accessible using variable property names. This feature is useful when a propery name is made up of an array.
Example
<?php var $u = "Architecture"; var $ugCourses = array("CSE","MECH","CIVIL"); $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "
"; echo $obj->{$courses}[0] . "
"; ?>
Output
This will produce following result −
Architecture CSE