- phpversion: documentation ( source)
<?php
phpversion() >= "7.0.1" or die();
$obj = new stdClass();
$obj->bar = "abc";
$data = array("foo" => "bar");
$key = "foo";
// the bad:
try {
echo @$obj->${data[$key]}; // syntax error
} catch (Error $e){
echo $e->getMessage(),"\n";
}
// uvs - the good: without and within a string
echo $obj->{$data[$key]},"\n";
echo "{$obj->{$data[$key]}}\n";
$obj->bar = "xyz";
// uvs - complex curly brace syntax: without and within a string
echo $obj->{${'data'}[$key]},"\n";
echo "{$obj->{${'data'}[$key]}}\n";