Это не имеет никакого смысла .. почему вы заменяете средство доступа к объекту вызовом функции, если это не метод в фактическом классе для $user
?
При этом вам нужно передать пользователю функцию:
function getVal($field, $result)
{
return $result->$field;
}
но лучше всего было бы реализовать ArrayAccess
в классе Result, поскольку это то, что вы пытаетесь сделать. Таким образом, вы можете использовать $user['name']
точно так же, как $user->name
или добавить публичный метод get
к классу результатов:
public function get($field)
{
return $this->$field;
}
Не то чтобы вы могли использовать переменные для доступа к свойствам, что делает то, что вы пытаетесь сделать, еще более странным для меня:
// you can always do the following
$field = 'name';
echo $user->$field;