Имя переменной как переменная
У меня есть вопрос об использовании переменных в качестве имени переменной. У меня есть массив с именами полей базы данных в качестве ключей и свойств объекта в виде значений, подобных этому:
$properties = array("userid" => "user['userid']", "city" => "hometown");
foreach ($properties as $field => $property ) {
$value1 = $db->$field;
$value2 = $obj->$property;
}
Это работает для родного города, но не работает для пользователя ['userid']. Как правильно адресовать переменную свойства?
Я также попробовал несколько вещей, таких как: $ {property} или {$ property}, но пока безуспешно.
редактировать: спасибо за все ответы! Пока я останусь с моим оригинальным решением, мне было интересно, если был способ, у меня нет принципиальных проблем с eval-версией, буду помнить об этом!
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};
}
....