Переменная переменная в php


мне Нужно создать переменную с произвольным именем. У меня есть следующий код, который не работает:

$vv = mysql_query("SELECT * FROM $tabela ORDER BY rand() LIMIT 3");
$i=1;
while($v = mysql_fetch_array($vv)){
  $vertical.$i=$v['arquivo'];
  $i++;
}

echo'
<img src="img/fotos/'.$vertical1.'"> <br>
<img src="img/fotos/'.$vertical2.'"> <br>
<img src="img/fotos/'.$vertical3.'">
';

я Хотел бы запрос я вернусь 3 переменные: $vertical1, $vertical2 и $vertical3

Примечание: В базе данных в поле 'файл' 'формат' входит в комплект. Ex.: фото.jpg

Примечание.2: я Считаю, что проблема связана с построением $vertical.$i...

Author: bfavaretto, 2016-12-13

3 answers

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

$varname = 'vertical' . $i;
$$varname = $v['arquivo'];

Я думаю, это уродливый и грязный, я предпочитаю использовать массив:

<?php
$vv = mysql_query("SELECT * FROM $tabela ORDER BY rand() LIMIT 3");
$vertical = array();

while($v = mysql_fetch_array($vv)) {
    $vertical[] = $v['arquivo'];
}

echo '
    <img src="img/fotos/'.$vertical[0].'"> <br>
    <img src="img/fotos/'.$vertical[1].'"> <br>
    <img src="img/fotos/'.$vertical[2].'">
';

PS: Вам нужно, чтобы обновить все ваши звонки, mysql_* mysqli_*, поскольку ваш код несовместимы с более новыми версиями PHP.

 8
Author: bfavaretto, 2017-04-13 12:59:31

Я согласен с @bfavaretto ... Код $variavel$i будет выглядеть немного запутанной. Для увеличения значения с помощью его ответ, я поставил цикл в образы, потому что если вы измените LIMIT SQL, поэтому вам не нужно повторно добавить тег <img>, так что он уже делает в одиночку:

<?php
$vv = mysql_query("SELECT * FROM $tabela ORDER BY rand() LIMIT 3");
$vertical = array();

while($v = mysql_fetch_array($vv)) {
    $vertical[] = $v['arquivo'];
}

for($i = 0; $i < count($vertical); $i++){
   echo '<img src="img/fotos/'.$vertical[$i].'"><br />';
}
 3
Author: Alisson Acioli, 2016-12-13 01:26:05

Отвечает больше одного, мог бы просто заключить с ключами.

Например:

$str1 = 'a';
$str2 = 'b';
${$str1.$str2} = 'c';

echo $ab;

Что-То более конкретным код вопроса:

$i = '1';
${'vertical'.$i} = 'foo';

echo $vertical1;

Condordo с отзывами о коде, поскольку, что делает затрудняет читаемость. Есть определенные случаи, где могут быть хорошо реализованы, но, кажется, не быть случай, который внес в вопрос. Тем не менее, я не могу судить о том, что делает это правильно или неправильно потому что я не обращая внимания на его бизнес-логики.

 2
Author: Daniel Omine, 2016-12-13 02:37:19