I know you can do: $hash('foo') and $$foo and also $bar[$foo], what are each of these things called?
$hash('foo')
$$foo
$bar[$foo]
$hash('foo') is a variable function. $hash may contain a string with the function name, or an anonymous function.
$hash
$hash = 'md5'; // This means echo md5('foo'); // Output: acbd18db4cc2f85cedef654fccc4a4d8 echo $hash('foo');
$$foo is a variable variable. $foo may contain a string with the variable name.
$foo
$foo = 'bar'; $bar = 'baz'; // This means echo $bar; // Output: baz echo $$foo;
$bar[$foo] is a variable array key. $foo may contain anything that can be used as an array key, like a numeric index or an associative name.
$bar = array('first' => 'A', 'second' => 'B', 'third' => 'C'); $foo = 'first'; // This tells PHP to look for the value of key 'first' // Output: A echo $bar[$foo];
The PHP manual has an article on variable variables, and an article on anonymous functions (but I didn't show an example above for the latter).
2.1m questions
2.1m answers
60 comments
57.0k users