PHP конкатенационная переменная - PullRequest
6 голосов
/ 20 мая 2010

Это может быть простой вопрос для вас, ребята. не могу найти его в Google.

Я пытаюсь объединить имя двух переменных;

$i=0;
 for ($i=0;$i<5;$i++){
   if($array[$i]>0){

   $test.$i=//do something
   }else{
  $test.$i=//do something
  }
}

//echo $test0 gives me nothing.
//echo $test1 gives me nothing.

Я знаю, что не могу использовать $ test. $ I, но не знаю, как это сделать. Спасибо!

Ответы [ 4 ]

28 голосов
/ 20 мая 2010

попробуй ${$test.$i} = value

РЕДАКТИРОВАТЬ: http://php.net/manual/en/language.variables.variable.php

8 голосов
/ 20 мая 2010

Я предполагаю, что переменные называются $ test0, $ test1, ..., $ test5. Вы можете использовать следующее:

${"test".$i}

Хотя, могу ли я предложить вам сделать $ test массивом и использовать вместо него $ i в качестве индекса? Очень странно использовать $ i в качестве индекса для просмотра списка имен переменных.

В качестве примера вместо:

$test0 = "hello";
$test1 = "world";

Использование:

$test[0] = "hello";
$test[1] = "world";
6 голосов
/ 20 мая 2010

Попробуйте это:

 for ($i=0;$i<5;$i++){
    $the_test = $test.$i;
    if($array[$i]>0){
        $$the_test=//do something
    }
    else{
        $$the_test=//do something
    }
}
1 голос
/ 20 мая 2010

Это может сработать:

$varName = $test . $i;
$$varName = ...

Могу ли я спросить, где это необходимо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...