我设置一个static变量$itemNum来存储购物车中商品的数量,都是测试的时候发现$itemNum的值一直为1,不管我购买几个商品都是1,static不起作用,请问这是怎么回事?<?php
  include ("include/setting.inc.php");
  include ("include/conn.php");
  session_start();
  mysql_query("SET NAMES 'UTF8'");  
  
  if(!isset($_SESSION['admin'])&&$_SESSION['admin']==false){ 
  echo '<SCRIPT LANGUAGE="javascript">';
  echo "alert('请先登录');";
      echo "location.href='login.php'";
      echo '</SCRIPT>';
  }
  else{
  $_SESSION['file']="";
  }
  
  static $itemNum=0;         //购物车商品数量
  $bookid=$_GET['id'];
  $str="select * from books where b_id=".$bookid;
  $result=mysql_query($str);
  $row=mysql_fetch_array($result);
  
  $_SESSION['$bookid']['bookname']=$row['b_name'];
  $_SESSION['$bookid']['bookprice']=$row['b_price'];
  $_SESSION['$bookid']['booknum']=1;
  $_SESSION['$bookid']['booktotal']=$_SESSION['$bookid']['booknum']*$_SESSION['$bookid']['bookprice'];
  $itemNum++;
  $_SESSION['itemNum']=$itemNum;
  echo $itemNum;
?>

解决方案 »

  1.   

    这样做是不行的,static变量只在当前程序执行中有效。
    你应该用 session 保存该数据
    $_SESSION['itemNum']++;
      

  2.   

    foreach($_SESSION as $row)
    {
       foreach($row as $k => $v)
         echo $k.' : '.$v;
    }
      

  3.   

    foreach($_SESSION as $编号=>$商品) {
      echo "$编号<br />";
      foreach($商品 as $k=>$v) {
        echo substr($k, 4) . ": $v<br />";
      }
    }