2012-08-29 16 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) { 
... 

這反正一個很好的做法,總是初始化變量,這樣你就可以從一些不好的驚喜救自己。