$ _SESSION起始值并避免负值

问题描述 投票:0回答:1

该脚本的目的是:

  1. 拥有一个从值3开始的计数器,并在每次重新加载Web浏览器时减少计数器。
  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);
php session-variables
1个回答
0
投票

回答你的问题:

  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"]}");
© www.soinside.com 2019 - 2024. All rights reserved.