2012-08-29 17 views
-1

我得到一个错误消息,当我跑我的PHP了未定义的变量在PHP代码

但是结果出来

这是我的代码

function cart() { 
    foreach($_SESSION as $name => $value) { 
     if ($value>0) { 
      if (substr($name, 0, 5) == 'cart_'){ 
       $id = substr($name, 5, (strlen($name)-5)); 
       $get = mysql_query('SELECT id, name, price FROM products WHERE id=' .mysql_real_escape_string((int)$id)); 
       while ($get_row = mysql_fetch_assoc($get)){ 
        $sub = $get_row['price'] * $value; 
        echo $get_row['name'].' x '.$value.' @ &pound'.number_format($get_row['price'], 2).' = &pound'.number_format($sub, 2).' <a href="cart.php?remove='.$id.'">[-]</a> <a href="cart.php?add='.$id.'">[+]</a> <a href="cart.php?delete='.$id.'">[Delete]</a><br />' ; 
       } 
      } 
      $total += $sub; 
     } 
    } 
    echo $total; 
} 
?> 

我得到了一个错误信息

Notice: Undefined variable: total in C:\xampp\htdocs\shoppingcart\cart.php on line 54 

其中线54是

echo $total; 

我的代码有什么问题?

我想我已经在

$total += $sub; 

感谢帮助我:)

+0

你还没有初始化'$ total'变量。在循环之前放置'$ total = 0;'。 –

+0

参考[现存问题链接](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – gks

+0

@THANGA请不要大声呼喊。全部大写都被认为是在网上大喊大叫。 – kapa

回答

2

要使用它,需要先设定一个+=定义的代码,否则你得到的警告。

在上面弹出一个$total=0;,你应该很甜。

function cart() { 
    $total=0; 
    // rest of your code... 

可以约赋值运算符here进一步阅读。

+0

谢谢..我不再有任何警告了:) –

1

添加为你的函数的第一行:

$total = 0; 

因为现在你的循环第一次运行时,$总不是一个已知的变种

2

如果您$_SESSION是空的,变量例如,从未初始化。另外,运算符+=表示向变量添加一些内容 - 如果事先未设置该变量,则会触发通知。

你可以把你的$total = 0;循环之前:

$total = 0; 
foreach($_SESSION as $name => $value) { 
... 

这反正一个很好的做法,总是初始化变量,这样你就可以从一些不好的惊喜救自己。