У меня плохо спроектированная база данных, с которой мне приходится иметь дело. Чтобы иметь меньший объем кода, мне нужно использовать динамическое именование переменных в PHP. Однако имена каждой переменной сильно различаются. Вот пример моего кода:
<?php
$test = (object)[
'variable_1_text' => 'ONE',
'variablevv_1_another_one' => 'Two',
'variablett_1_blah' => 'III',
'variablex_1_text_lala' => 'Four',
'variable_2_text' => 'ONE',
'variablevv_2_another_one' => 'Two',
'variablett_2_blah' => 'III',
'variablex_2_text_lala' => 'Four',
'variable_3_text' => 'ONE',
'variablevv_3_another_one' => 'Two',
'variablett_3_blah' => 'III',
'variablex_3_text_lala' => 'Four',
'variable_4_text' => 'ONE',
'variablevv_4_another_one' => 'Two',
'variablett_4_blah' => 'III',
'variablex_4_text_lala' => 'Four',
];
//this doesn't work
foreach (array(1,2,3,4) as $temp_val) {
echo $test->variable_{$temp_val}_text . "<br />";
echo $test->variablevv_{$temp_val}_another_one . "<br />";
echo $test->variablett_{$temp_val}_blah . "<br />";
echo $test->variablex_{$temp_val}_text_lala . "<br />";
}
?>
Там много этих переменных. Мне просто нужно, чтобы динамически сделать эти 1, 2, 3 и 4 между именами имен переменных. Это вообще возможно?
Вы можете попробовать это:
$test->{'variable_'.$temp_val.'_text'};
Других решений пока нет …