Начальное значение $ _SESSION и избегание отрицательных значений - PullRequest
0 голосов
/ 08 апреля 2019

Целью скрипта является:

  1. Имейте счетчик, который начинается со значения 3 и уменьшает счетчик при каждой перезагрузке веб-браузера.
  2. Избегайте, чтобы счетчик получал отрицательные значения, самое низкое допустимое значение $_SESSION должно быть [0].

Вопросы:

  1. При запуске скрипта счетчик начинается с 2, почему?
  2. Первый блок кода в операторе if играет роль непрерывной проверки, равен ли $_SESSION 0 или меньше 0. Он останавливается только тогда, когда достигает значения [-1], почему не останавливается на значении 0.
<?php
session_name();
session_start();

$count = $_SESSION["count"] ?? 3;

if($_SESSION["count"] >= 0) {
  $_SESSION["count"] = --$count;
} else {
  echo("<br><br>");
  echo("Value is lower then 0.");
}    
print_r($_SESSION);

1 Ответ

0 голосов
/ 08 апреля 2019

Чтобы ответить на ваши вопросы:

  1. Начинается с 2, потому что на первой итерации $_SESSION['count'] не установлено.Когда он достигает $_SESSION["count"] = --$count;, $_SESSION['count'] устанавливается на 2.Вы должны убедиться, что $_SESSION['count'] установлено.
  2. Вы должны изменить условие if на равное if($_SESSION["count"] > 0), чтобы оно остановилось на 0, а не -1.
<?php
session_name();
session_start();
//unset($_SESSION["count"]);return;
if(!isset($_SESSION["count"])){
  $_SESSION["count"] = 3;
}
$count =$_SESSION["count"];

print_r("Count(1): {$_SESSION["count"]}");

if($_SESSION["count"] > 0) {
  $_SESSION["count"] = --$count;
} else {
  echo("<br><br>");
  echo("Value is lower then 0.");
}    

print_r("Count(2): {$_SESSION["count"]}");
...