[英]What am I doing wrong with this phone SESSION I'm trying to print to screen?
[英]What I'm doing wrong? "session start"
下面的第一個代碼應該顯示 10-400 之間的隨機數
第二個代碼應該顯示 400-3000 之間的隨機數
如果我單獨使用一個代碼,它將正常工作。 但是,如果我在一個頁面中發布這樣的兩個代碼,則第二個代碼將適用於 10-400 之間的第一個代碼。
我做錯了什么?
這是我的代碼:
<?php
session_start();
if(isset($_SESSION['num'])){
$num = mt_rand($_SESSION['num']-5, $_SESSION['num']+5);
}else{
$num = mt_rand(10, 400);
}
echo $num . " Gold coin";
$_SESSION['num'] = $num;
?>
<?php
session_start();
if(isset($_SESSION['num'])){
$num = mt_rand($_SESSION['num']-5, $_SESSION['num']+5);
}else{
$num = mt_rand(400, 3000);
}
echo $num . " Pink Coin";
$_SESSION['num'] = $num;
?>
這是因為您對兩段代碼使用相同的會話變量,並且在第一段之后設置$_SESSION['num']
(這將是 10 到 400 之間的值),所以第二段代碼將取第一個if
分支並在第一個值 -5 和 +5 之間生成一個值(因此它將介於 5 和 405 之間)。 您應該為每種硬幣類型使用不同的會話變量,例如
session_start();
if(isset($_SESSION['gold'])){
$gold= mt_rand($_SESSION['gold']-5, $_SESSION['gold']+5);
}else{
$gold= mt_rand(10, 400);
}
echo $gold. " Gold coin";
$_SESSION['gold'] = $gold;
if(isset($_SESSION['pink'])){
$pink= mt_rand($_SESSION['pink']-5, $_SESSION['pink']+5);
}else{
$pink= mt_rand(10, 400);
}
echo $pink. " Pink coin";
$_SESSION['pink'] = $pink;
請注意,您應該只調用session_start()
一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.