很抱歉询问之前是否已经询问过,但这些解决方案都不适用于我。每次我尝试添加到数组中,我得到的是新数组。 请参阅以下PHP代码:
<?php
session_start();
if (!isset($_SESSION['$rNumber'])){
$_SESSION['$rNumber'] = 0;
}
if(empty($_SESSION['words']))
{
$_SESSION['words'] = array();
}
if (isset($_POST['button1'])){
$random = rand(10, 20);
$_SESSION['$rNumber'] = $_SESSION['$rNumber'] + $random;
$word = 'You entered a farm and earned '.$random.' golds.';
array_push($_SESSION['words'], $word);
} else if ...
}
?>
当我var_dump $ words []时,它总是只有1个值,虽然我添加了很多次! 如果需要其他信息,请告诉我。 谢谢!
答案 0 :(得分:1)
您正在使用var_dump()检查错误的变量因此请尝试var_dump($_SESSION['words'])
而不是var_dump($words)
。我试了一下它对我有用。数组推送将值$word
添加到$_SESSION['words']
,因此您必须对$_SESSION['words']
进行var_dump,因为$word
仍然只是一个字符串,而不是数组。
答案 1 :(得分:0)
你也可以这样做:
$_SESSION['words'][] = 'You entered a farm and earned '.$random.' golds.';
代替:
$word = 'You entered a farm and earned '.$random.' golds.';
array_push($_SESSION['words'], $word);
<强>更新强> 来自php.net:注意:如果你使用array_push()向数组添加一个元素,最好使用$ array [] =因为这样就没有调用函数的开销。
答案 2 :(得分:0)
谢谢你的建议。我做了这些修改并且有效!
<?php
session_start();
if (!isset($_SESSION['$rNumber'])){
$_SESSION['$rNumber'] = 0;
}
if(empty($_SESSION['words']))
{
$_SESSION['words'] = array();
}
if (isset($_POST['button1'])){
$random = rand(10, 20);
$_SESSION['$rNumber'] = $_SESSION['$rNumber'] + $random;
$word = 'You entered a farm and earned '.$random.' golds.';
array_push($_SESSION['words'], $word);
} else if...
答案 3 :(得分:-1)
一些问题,正如@MarcB指出的那样,你应该为你的SESSION变量设置一个索引名称。
<?php
session_start();
if (!isset($_SESSION['gold'])){
$_SESSION['gold'] = 0;
}
if(empty($_SESSION['words']))
{
$_SESSION['words'] = array();
}
if (isset($_POST['button1'])){
$random = rand(10, 20);
$_SESSION['gold'] += $random;
$word = "You entered a farm and earned $random golds.";
$_SESSION['words'][] = $word;
}
?>