Nome variável como variável
Eu tenho uma pergunta sobre o uso de variáveis como nome da variável. Eu tenho uma matriz com nomes de campo de banco de dados como propriedades de chave e objeto como valores como este:
$properties = array("userid" => "user['userid']", "city" => "hometown");
foreach ($properties as $field => $property ) {
$value1 = $db->$field;
$value2 = $obj->$property;
}
Isso funciona para a cidade natal da propriedade, mas não para o usuário da propriedade ['userid']. Qual é a maneira correta de abordar a variável de propriedade?
Também tentei várias coisas como: $ {property} ou {$ property}, mas sem sorte ainda.
edit: Obrigado por todas as respostas! Por enquanto, continuarei com minha solução original. Fiquei imaginando se havia uma maneira. Não tenho problemas principais com a versão eval, lembre-se disso!
foreach ($fields as $field => $property ) {
switch ($field) {
case "userid":
$newvalue = $this->user['userid'];
$oldvalue = $original->user['userid'];
break;
// more cases ...
default:
$newvalue = $this->{$property};
$oldvalue = $original->($property};
}
....