Синтаксис фигурных скобок полезен, когда вы хотите сослаться на имя функции в виде строки:
print $foo->{'aMemberFunc'}();
Когда вы хотите получить доступ к членам, имя которых предоставлено другой функцией (или переменной).
Здесь getVarName()
возвращает строку, которая может использоваться для ссылки на член внутри объекта $ foo.
print $foo->{getVarName()};
Без фигурных скобок это будет $foo->getVarName()
, и он попытается запустить этот метод ... с фигурными скобками это будет иметь совершенно другое значение.
echo $foo->{'bar'};
и echo $foo->bar;
идентичны, насколько я могу судить.