$var1
- это объект.
$var2
- это (возможно) имя переменной внутри $var1
.
Если $var2="test";
, то это оценивается как:
$var1->test;
Вы можете сделать это со всеми видами вещей:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
Вы даже можете стать действительно модным:
echo $$name->$name2; // Echos hi