Делать цикл php понятным для сервера, а не просто повторять код - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно добавить длинный код

 $somephpcode->Cell($string1);
 $somephpcode->Cell('Figure 1');
 $somephpcode->Cell($string2);
 $somephpcode->Cell('Figure 2');
 $somephpcode->Cell($string3);
 $somephpcode->Cell('Figure 3');
 ...

Я бы хотел сделать это быстрее с помощью цикла. Я могу сделать это так:

for ($x = 1; $x <= 25; $x++) {
    $somestring = "\$somephpcode->Cell(\$string$x);\$somephpcode->Cell('Figure $x');";
    echo $somestring;
}

И это будет соответствовать правильному коду. Но мой вопрос для начинающих состоит в том, как сделать это понятным для сервера, а не просто вернуть (показать) код? Что я должен использовать вместо эха? Возможно ли это?

1 Ответ

3 голосов
/ 06 ноября 2019

Без каких-либо существенных изменений вы можете просто создать строку, содержащую имя переменной, на которую вы хотите сослаться, а затем использовать функцию PHP «переменные переменные» для ее разыменования:

for ($x = 1; $x <= 25; $x++) {
    $varName = 'string' . $x;
    // So now $varName contains a string like "string1", and we use two dollar signs here:
    $somephpcode->Cell($$varName);
    $somephpcode->Cell('Figure ' . $x);
}

Однаковсякий раз, когда у вас есть переменные, названные как var1, var2, var3, вам действительно следует подумать об использовании массива. Например:

$strings = ['first string', 'second string', 'third string', ... ];

Затем вы можете ссылаться на первую строку по ее числовому индексу, начинающемуся с нуля, например $strings[0]. Это делает ваш код намного чище:

for ($x = 1; $x <= 25; $x++) {
    $somephpcode->Cell($strings[$x - 1]);
    $somephpcode->Cell('Figure ' . $x);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...