PHP会话变量数组
嗨,我正在尝试理解会话变量,特别是在数组中使用它们。在下面的示例代码中,用户输入一封信,我想将该提交添加到会话变量中,以便下次用户提交一封信时不会丢失上一条 因此,如果用户输入“e”,数组将显示“e”,如果用户选择“s”,那么数组现在将显示“e”和“s”。这是我第一次使用PHP进行实验,事实证明会话有点难以理解。谁能帮助我理解如何获得我想要的结果,或者我在下面的代码中哪里出错了?非常感谢PHP会话变量数组,php,session,session-variables,Php,Session,Session Variables,嗨,我正在尝试理解会话变量,特别是在数组中使用它们。在下面的示例代码中,用户输入一封信,我想将该提交添加到会话变量中,以便下次用户提交一封信时不会丢失上一条 因此,如果用户输入“e”,数组将显示“e”,如果用户选择“s”,那么数组现在将显示“e”和“s”。这是我第一次使用PHP进行实验,事实证明会话有点难以理解。谁能帮助我理解如何获得我想要的结果,或者我在下面的代码中哪里出错了?非常感谢 <?php session_start(); function example() { $_SESSI
<?php
session_start();
function example()
{
$_SESSION['lettersGuessed'] = array();
$userLetter = $_GET['input'];
array_push($_SESSION['lettersGuessed'],$userLetter);
print_r($_SESSION['lettersGuessed']);
}
if (strlen($_GET['input'])==1) {
if (ctype_lower($_GET['input']))
{
echo "The user-submitted letter is lowercase.<br>";
example();
}
else
{
echo "Invalid submission<br>";
}
}
?>
<form action="" method="get">
<input name="input" value="Enter a letter!" />
<input type="submit" value="Submit" />
</form>
问题在于,示例开头的一行在每次调用函数时都将会话变量重置为空数组 更新示例函数,如下所示:
function example()
{
$_SESSION['lettersGuessed'][] = $_GET['input'];
print_r($_SESSION['lettersGuessed']);
}
谢天谢地,PHP是松散类型的,所以您不必手动将字母定义为数组。之后简单地使用[]将使其作为数组处理,然后使用=assignment操作符将$\u GET['input']推入其中。以更简单的方式尝试不使用数组的情况 示例函数中有一个简单的更改 下面是完整的代码
<?php
session_start();
function example() {
$userLetter = $_GET['input'];
$_SESSION['lettersGuessed'][] = $userLetter;
print_r($_SESSION['lettersGuessed']);
}
if (strlen($_GET['input']) == 1) {
if (ctype_lower($_GET['input'])) {
echo "The user-submitted letter is lowercase.<br>";
example();
} else {
echo "Invalid submission<br>";
}
}
?>
<form action="" method="get">
<input name="input" value="Enter a letter!" />
<input type="submit" value="Submit" />
</form>
?>
嗨,BenM,谢谢你帮我,我已经试过你的代码了,但我仍然遇到同样的问题,每次用户输入新字母时数组的内容都会被覆盖,还有其他想法吗?我在我的服务器上试过这段代码,效果很好>你服务器上的示例对我也很好,但是,当我复制/粘贴您在这里列出的示例函数时,奇怪的是,它对我不起作用。我想我现在明白了我的问题的本质,所以非常感谢你的帮助谢谢,很高兴它为你解决了。如果答案有帮助,你可能会接受。而不是接受一个小时后贴出的相同答案…这是非常感谢,帮助我更好地理解