【发布时间】:2016-08-10 11:00:03
【问题描述】:
我将输入的 2 个数字与 xml 文件中的数字进行比较,然后将每次比较的结果存储在一个变量($n1、$n2)中。然后,我将每个变量的总数相加,并将其存储在 foreach 循环中的新变量 $total 中。我尝试在循环中显示结果,但它显示了正确和不正确比较的结果,因为它围绕整个 xml 循环。
我希望能够在循环之外使用 $total 来显示结果。当我在循环外回显 $total 时,无论比较是否正确,它的结果都是 0。当我在循环中回显它时,它有一个值。
如何确保 $total 变量将其存储的值保持在循环之外?
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$xml = simplexml_load_file('lottery2.xml') or die("Error: Cannot create object");
if(isset($_POST['num1'])&& isset($_POST['num2']))
{
foreach($xml->children() as $record)
{
if($record->num1 == $num1 || $record->num2 == $num1)
{
$n1=1;
}
else
{
$n1=0;
}
if($record->num1 == $num2 || $record->num2 == $num2)
{
$n2=1;
}
else
{
$n2=0;
}
$total= $n1+$n2;
}//end foreach
if ($total=2) {
echo "Jackpot is ".$record->jackpot ."<br />";
} else {
echo "No jackpot, sorry";
}
【问题讨论】:
-
$total需要在 foreach 循环之外定义,因为它代表您在每次迭代时都重写它。所以,在循环外定义$total而不是$total= $n1+$n2;做$total += $n1+$n2;,