|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-03-05 07:13 UTC] greg at mtechsolutions dot ca
When using a variable variable in a class, $$this->varname does not work, ${$this->varname} must be used.
Here is a simple script to show this in action. Put the {} in and it will work:
<?
$id = "yes";
class testClass {
var $varname;
function testClass($varname) {
$this->varname = $varname;
}
function foo() {
global $$this->varname;
echo "$".$this->varname." is ".$$this->varname;
}
}
$test = new testClass("id");
$test->foo();
?>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Dec 05 12:00:01 2025 UTC |
Just to give you a better answer here. Consider $$a->b Does this mean the the class name $$a with the property b or the variable property $a->b? See the vagueness here? It could be interpreted as either ${$a->b} or {$$a}->b. That's why the {}'s are needed to resolve this ambiguity.