Переменная PHP и проблема сессии - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь это сделать,

$m1 = $_SESSION[m1];
.....

, используя следующее для цикла,

for ($i = 1; $i < 9; $i++) {
$m . $i = $_SESSION['m' . $i];
}

что я здесь не так делаю?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 02 августа 2011

Ваш $m . $i недействителен: вместо него следует использовать: ${'m' . $i}

В основном:

  • Сначала вы создаете имя вашей переменной: 'm' . $i
  • И только тогда вы пытаетесь получить доступ к переменной, которая имеет это имя: ${ 'm' . $i }


Вы также можете использовать следующий синтаксис:

$variableName = 'm' . $i;
$$variableName = 'your-value-here';


И, конечно же, ссылка в руководстве по PHP: Переменные переменные .

0 голосов
/ 02 августа 2011

Более того - и это немного не в тему - сделайте привычкой писать

$ _ SESSION ['m1']

вместо

$ _ SESSION [m1]

Однажды вы можете столкнуться со странной ошибкой, если вы этого не сделаете.

0 голосов
/ 02 августа 2011

Часть $m . $i является проблемой.Есть способы сделать это, как предлагают другие ответы (${'m' . $i}), но это не рекомендуется.

Как вы хотите использовать это?Возможно ли сделать это с массивом?Таким образом, $m[$i] для того, чтобы получить $m[1] и т. Д.

0 голосов
/ 02 августа 2011

попробуй

for ($i = 1; $i < 9; $i++) {
    ${'m' . $i} = $_SESSION['m' . $i];
}

$m. $i является конкатенацией значений 2 переменных ($m и $i) и не может использоваться в качестве переменной для назначения.

Anyway, Why you don't use an array?

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