#php
#php
Вопрос:
У меня проблема с созданием переменной в цикле и доступом к значению третьей переменной, я пробовал много способов, но теперь я не знаю, как это сделать…. код такой..
$rand_1 = random_username($_POST['txtuser_name']);
$rand_2 = random_username($_POST['txtuser_name']);
$rand_3 = random_username($_POST['txtuser_name']);
$username = "";
for($i=1; $i<=3; $i){
$name = "rand_".$i;
$username .= $name."<br />";
}
echo $username;
Любое предложение…..
Ответ №1:
Попробуйте $$name
, которая является переменной переменной.
Тем не менее, когда вы видите var_1
etc, обычно это означает, что вы должны использовать массив.
Тогда вы могли бы создать свой код…
$rand = array();
foreach(range(0, 2) as $index) {
$rand[] = random_username($_POST['txtuser_name']);
}
$username = join('<br />', $rand) . '<br />';
Комментарии:
1. @Ibu Просто более простой способ перебирать числа, чем при обычном
for
цикле.
Ответ №2:
используйте $username .= $$name."<br />";
вместо $username .= $name."<br />";
Но лучший подход может быть
$user=array();
for($i=1; $i<=3; $i){
$user[] = random_username($_POST['txtuser_name']);
}
echo implode("<br/>", $user)."<br />";
Комментарии:
1. все это работает с $$name,, и второй метод также хорош.
2. Ваш лучший подход не приведет к тому же результату, что и код операционной системы.
3. @lex, эй, чувак, вы оба правы, но в цикле я также хочу проверить в БД. вот почему не идеально взрывать или объединять все username, а просто проверять в цикле, если не существует в d.b, затем объединять с username, иначе go next….so $query1 = «выберите count(*) из member_details, где username ='».$$name.»‘»; $nameCount = DbQuery($query1, ‘count’); if($nameCount==0){ $username .= $$name.»<br />»; }