@storm-coder

Не возвращает ожидаемый результат. Почему?

$visitCounter = 0; // переменная для подсчета кол-ва посещений

setcookie("visitCounter", "John"); // отправить куки по имени "visitCounter"

if (isset($_COOKIE['visitCounter'])) { // проверить, пришли ли куки (if true - присвоить их значение переменной $visitCounter)
	$visitCounter = $_COOKIE['visitCounter'];
}
$visitCounter++; 
echo $visitCounter;

Почему возвращает "Joho" вместо "John1"? И куда пропадает последний символ "n" из имени John?
Спасибо
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Вы записали в куки строку, потом ее инкрементировали и что ожидаете?
Приведу пример:
$a = "foo";
$a++;
var_dump($a); // результат: string(3) "fop"

Как и в вашем варианте, последняя буква изменена на следующую
вероятно setcookie("visitCounter", "John"); надо заменить на setcookie("visitCounter", $visitCounter); или setcookie("visitCounter[John]", $visitCounter);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В пхп есть "наследие" от перл, касающееся инкрементирования строк, если коротко - инкриментируется ASCII код, причем только в диапазоне a-Z, в других диапазонах(и, кстати, в случае декремента) изменения строки не будет.
PS: дока
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы