php, session, arrays - как назначить стринг в конце массива сессий - PullRequest
0 голосов
/ 31 мая 2011

У меня есть этот небольшой код, почему он не работает и как его правильно сделать?

$temp = $_SESSION['contactPersonInterest'][$i];
$temp += ',Medlemskort';
//$_SESSION['contactPersonInterest'][$i] = $temp;

Я тестирую его с помощью

?><script>alert('<?php echo  $_SESSION['contactPersonInterest'][$i] ?>'+'----------'+'<?php echo $temp ?>');</script> <?php

И что я получаю:

blbla,blll----------0

Что не так?

Спасибо

Ответы [ 4 ]

2 голосов
/ 31 мая 2011

Конкатенация строк выполняется с . в PHP .Попробуйте:

$temp .= ',Medlemskort';

В противном случае вы выполняете сложение, и если обе строки не начинаются с цифр, они будут преобразованы в 0 и 0 + 0 = 0:)

Посмотритев Тип Жонглирование .

1 голос
/ 31 мая 2011

Это потому, что + = является оператором для добавления целых чисел, а не строк.Вы хотите объединить строки (то есть ".").Также нет необходимости создавать временную переменную, а только перезаписывать существующую.Это должно работать:

$_SESSION['contactPersonInterest'][$i] .= ',Medlemskort';
0 голосов
/ 31 мая 2011

Если вы хотите, чтобы $ i имел значение temp, нет необходимости в + =:

$temp = ""; // good habit to initialize before usage
$temp = $_SESSION['contactPersonInterest'][$i];
$temp = ',Medlemskort';
$_SESSION['contactPersonInterest'][$i] = $temp;
// or even save a $temp
 $_SESSION['contactPersonInterest'][$i] = ',Medlemskort';

Надеюсь, это имеет смысл, удачи

0 голосов
/ 31 мая 2011

Вы ошибочно назначаете больше вещей переменной через +. Вы должны использовать . вместо.

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