<?php
// The path into the array
$GET_VARIABLE = "a.b.c";
// Some example data
// Construct an accessor into the array
$variablePath = explode( ".", $GET_VARIABLE ); $accessor = implode( "' ][ '", $variablePath ); $variable = "\$GLOBALS[ '". $accessor . "' ]";
// Print the value for debugging purposes (this works fine)
echo $GLOBALS["a"]["b"]["c"] . "\n";
// Try to evaluate the accessor (this will fail)
echo $$variable;
?>
ICAgIDw/cGhwCiAgICAgICAgLy8gVGhlIHBhdGggaW50byB0aGUgYXJyYXkKICAgICAgICAkR0VUX1ZBUklBQkxFID0gImEuYi5jIjsKICAgICAgICAvLyBTb21lIGV4YW1wbGUgZGF0YQogICAgICAgICRHTE9CQUxTWyJhIl09IGFycmF5KCJiIj0+YXJyYXkoImMiPT4iZm9vIikpOwogICAgCiAgICAgICAgLy8gQ29uc3RydWN0IGFuIGFjY2Vzc29yIGludG8gdGhlIGFycmF5CiAgICAgICAgJHZhcmlhYmxlUGF0aCA9IGV4cGxvZGUoICIuIiwgJEdFVF9WQVJJQUJMRSApOwogICAgICAgICRhY2Nlc3NvciA9IGltcGxvZGUoICInIF1bICciLCAkdmFyaWFibGVQYXRoICk7CiAgICAgICAgJHZhcmlhYmxlID0gIlwkR0xPQkFMU1sgJyIuICRhY2Nlc3NvciAuICInIF0iOwogICAgICAgIAogICAgICAgIC8vIFByaW50IHRoZSB2YWx1ZSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzICh0aGlzIHdvcmtzIGZpbmUpCiAgICAgICAgZWNobyAkR0xPQkFMU1siYSJdWyJiIl1bImMiXSAuICJcbiI7CiAgICAgICAgLy8gVHJ5IHRvIGV2YWx1YXRlIHRoZSBhY2Nlc3NvciAodGhpcyB3aWxsIGZhaWwpCiAgICAgICAgZWNobyAkJHZhcmlhYmxlOwogICAgPz4=