我用PHP制作了纸牌游戏,但我遇到了一些问题。
if ($_SESSION["bet"] != NULL)
{
echo "Your starting bankroll is: " . $_SESSION["bankroll"] . "<br>";
echo "Your bet is: " . $_SESSION["bet"] . "<br>";
}
我正在收到用户的意见。问题是,当游戏首先加载,并且用户输入输入并点击提交时,游戏将无法工作。条件($_SESSION["bet"] != NULL)
给出为真,并且未定义资金。
有没有办法可以正确设置?是否有一些PHP方法可以初始化变量一次然后只在会话启动时工作,然后其余代码可以处理该变量如何更新?如果用户单击提交时没有任何内容,则会初始化bankroll变量,因此游戏仍然有效,但启动不正确。
if ($_SESSION["bet"] == NULL)
{
$_SESSION["bankroll"] = 1000;
}
每次用户提交NULL
输入时,bankroll变量都会初始化为1000。我想改变它。
更多代码...正在更新...
session_start();
$_SESSION["bet"] = $_POST["bet"];
echo "<br>";
//print_r($_SESSION);
if ($_SESSION["bet"] != NULL)
{
echo "Your starting bankroll is: " . $_SESSION["bankroll"] . "<br>";
echo "Your bet is: " . $_SESSION["bet"] . "<br>";
}
if ($_SESSION["bet"] == NULL)
{
$_SESSION["bankroll"] = 1000;
}
else if ($_SESSION["bet"] > 1000 || $_SESSION["bet"] < 0)
{
echo " Please enter between 0 and 1000.";
}
else if ($_SESSION["bet"] > $_SESSION["bankroll"])
{
echo "You can't enter more than what you have.";
}
else
{
$deck = array();
for($x = 0; $x < 54; $x++) {
$deck[$x] = $x;
}
shuffle($deck);
//Then more stuff. This one for example...
if(($houseSuits[0] == -100) || ($houseSuits[1] == -100) || ($houseSuits[2] == -100) || ($houseSuits[3] == -100))
{
echo "<br>";
echo '<center> PLAYER WINS! (HOUSE HAS JOKER) </center>';
echo "<br>";
$_SESSION["bankroll"] = $_SESSION["bankroll"] + $_SESSION["bet"]; //THESE NEED TO BE ADDRESSED.
}
我只想找到一种方法,在开始时将BANKROLL初始化为1000。我做的方式是提交NULL
值,因为假设用户不会再次提交空值。
我想要将BANKROLL初始化为1000,然后让游戏关注BANKROLL如何获得更新。
我找到了一个方法,但这不是一个正确的方式,所以我要求帮助。
谢谢。
答案 0 :(得分:0)
好的尝试一下。
因此,如果没有设置资金,那么设置它,一旦设置它就不会再次设置,因为它已经设置。
然后任何条件都没问题。
session_start();
// Initialise bankroll if not already
if (!isset($_SESSION['bankroll'])) {
$_SESSION['bankroll'] = 1000;
echo "Your starting bankroll is: " . $_SESSION["bankroll"] . "<br>";
}
$_SESSION['bet'] = $_POST['bet'];
if ($_SESSION['bet'] != NULL) {
echo "Your bet is: " . $_SESSION['bet'] . "<br>";
}
if ($_SESSION['bet'] > 1000 || $_SESSION['bet'] < 0) {
echo " Please enter between 0 and 1000.";
} elseif ($_SESSION['bet'] > $_SESSION['bankroll']) {
echo "You can't enter more than what you have.";
} else {
// Your card game stuff
}
注意:您可能会遇到使用会话的问题,因为它会在任何地方存储他们的投注,因此发出投注会设置会话,然后导航到其他地方然后返回并且他们的投注仍将像以前一样。也许这没关系。
你也可能不想检查赌注是否为空,更多可能是空的或其他什么。测试两种方式以确定。