Динамические имена переменных PHP между словами - PullRequest
0 голосов
/ 15 мая 2018

У меня плохо спроектированная база данных, с которой мне приходится иметь дело.Чтобы иметь меньший объем кода, мне нужно использовать динамическое именование переменных в 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 между именами имен переменных.Это вообще возможно?

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете попробовать это: $test->{'variable_'.$temp_val.'_text'};

...