Добавить числовую переменную в конец существующей переменной

#php #variables

#php #переменные

Вопрос:

Я пытаюсь сгенерировать следующую переменную:

 $v = $current_user->wpum_field_11;
  

из следующих двух переменных:

 $a = $current_user->wpum_field_;
$b = $user_id = get_post_meta($postid, 'user-id', true);
  

Я попробовал несколько вариантов вокруг:

 $v = $a . $b;
  

… но это всего лишь вывод числа 11.

Комментарии:

1. Не уверен, чего вы пытаетесь достичь, но это звучит как очень неудачная идея, полная ошибок и головной боли, когда вы возвращаетесь к этому коду. В любом случае, $a = '$current_user->wpum_field_'; должно сработать.

2. Каждый раз, когда вы обнаруживаете, что используете нумерованные переменные, вам почти наверняка следует использовать вместо них массив.

Ответ №1:

Используйте это, программно создавая полное имя атрибута.

 $attrName = "wpum_field_";
$number = $user_id = get_post_meta($postid, 'user-id', true);

$attribute = $attrName.$number;

$v = $curren_user->$attribute;
  

Комментарии:

1. большое вам спасибо, Дез, мне просто нужно было удалить «= $user_id» из второй строки. Как называется этот метод? еще раз спасибо,

2. @Scot Это называется «переменные variables»

3. Я не уверен, есть ли у нее конкретное имя, но она генерирует имена атрибутов с помощью переменных. Я отредактировал свой код, потому что вы генерировали имена атрибутов, а не методы, хотя тот же подход сработал бы, если вы хотите программно генерировать вызовы методов объектов.