Php 反复将数组序列化为$\u POST
我正在练习玩21点游戏,我一直坚持打两次。这是我的密码:Php 反复将数组序列化为$\u POST,php,arrays,serialization,Php,Arrays,Serialization,我正在练习玩21点游戏,我一直坚持打两次。这是我的密码: if (empty($_POST)) { for ($i=0; $i<2; $i++) { $pHand[] = array_shift($deck); $dHand[] = array_shift($deck); } $deck2 = serialize($deck); $pHand2 = serialize($pHand); $dHand2 = serialize($dHand); } e
if (empty($_POST)) {
for ($i=0; $i<2; $i++) {
$pHand[] = array_shift($deck);
$dHand[] = array_shift($deck);
}
$deck2 = serialize($deck);
$pHand2 = serialize($pHand);
$dHand2 = serialize($dHand);
}
elseif ($_POST['hit'] == "Hit") {
$deck = unserialize($_POST['deck']);
$pHand = unserialize($_POST['pHand']);
$dHand = unserialize($_POST['dHand']);
$pHand[] = array_shift($deck);
$deck2 = serialize($pHand);
$pHand2 = serialize($dHand);
$dHand2 = serialize($deck);
}
<form method="post">
<input type="hidden" name="pHand" value="<?php echo htmlspecialchars($pHand2, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="dHand" value="<?php echo htmlspecialchars($dHand2, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="deck" value="<?php echo htmlspecialchars($deck2, ENT_QUOTES, 'UTF-8'); ?>">
if(空($\u POST)){
对于($i=0;$i请考虑使用$\u会话在提交之间存储数据服务器端
大致如下:
<?php
session_start();
if (empty($_POST))
{
for ($i=0; $i<2; $i++)
{
$pHand[] = array_shift($deck);
$dHand[] = array_shift($deck);
}
$_SESSION['deck'] = $deck;
$_SESSION['pHand'] = $pHand;
$_SESSION['dHand'] = $dHand;
}
elseif ($_POST['hit'] == "Hit")
{
$deck = $_SESSION['deck'];
$pHand = $_SESSION['pHand'];
$dHand = $_SESSION['dHand'];
$pHand[] = array_shift($deck);
$_SESSION['deck'] = $deck;
$_SESSION['pHand'] = $pHand;
$_SESSION['dHand'] = $dHand;
}
我已经试过了,但问题是如果我按两次“Hit”,会话将添加太多的数组。很抱歉,代码不是“开箱即用”的。请将$\u SESSION superglobal变量视为在请求之间可用的变量(只要在每个请求开始时调用SESSION\u start()).谢谢你的建议,我已经试过了,但仍然卡住了。我会继续尝试的