<i id="kyr1l"></i>
    .CN 三亞資訊 生活散文
    用戶名:    密碼:   注冊
    163郵箱 QQ郵箱 京東 微博 網易 新浪 百度 百度翻譯   工行 中行 建行 交行 農行 郵政銀行
    首頁> 電腦雜記

    PHP購物車類

    2023-03-12 13:21    944次

    /*****************************************************************************/
    /*                                                                           */
    /* file type:      包含文件,建議后綴為.inc    */
    /*                                                                           */
    /* file name:      cart.inc                                   */
    /*                                                                           */
    /* Description:    定義一個購車類                  */
    /*                                                                           */
    /* Func list :     class cart                                 */
    /*                                                                           */
    /* author :        bigeagle                                   */
    /*                                                                           */
    /*                                                                           */
    /*****************************************************************************/
     
    //定義本文件常量
    define("_CART_INC_" , "exists") ;
     
    /*購物車類*/
    class TCart
    {
     
      var $SortCount;            //商品種類數
      var $TotalCost;            //商品總價值
     
      var $Id;                   //每類商品的ID(數組)
      var $Name;                 //每類商品的名稱(數組)
      var $Price;                //每類商品的價格(數組)
      var $Discount;             //商品的折扣(數組)
      var $GoodPrice ;           //商品的優惠價格(數組)
      var $Count;                //每類商品的件數(數組)
      var $MaxCount ;            //商品限量(數組)
     
      //******構造函數
      function TCart()
      {
       $this->SortCount=0;
     
       session_start(); //初始化一個session
       session_register('sId');
       session_register('sName');
       session_register('sPrice');
       session_register('sDiscount');
       session_register('sGoodPrice') ;
       session_register('sCount') ;
       session_register('sMaxCount') ;
     
       $this->Update();
       $this->Calculate();
      }
     
      //********私有,根據session的值更新類中相應數據
      function Update()
      {
        global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice;
     
       if(!isset($sId) or !isset($sName) or !isset($sPrice)
          or !isset($sDiscount) or !isset($sMaxCount)
          or !isset($sGoodPrice) or !isset($sCount)) return;
     
       $this->Id        =$sId;
       $this->Name      =$sName;
       $this->Price     =$sPrice;
       $this->Count     =$sCount;
       $this->Discount  = $sDiscount ;
       $this->GoodPrice = $sGoodPrice ;
       $this->MaxCount  = $sMaxCount ;
     
       //計算商品總數
       $this->SortCount=count($sId);
     
      }
     
      //********私有,根據新的數據計算每類商品的價值及全部商品的總價
      function Calculate()
      {
       for($i=0;$i<$this->SortCount;$i++)
       {
         /*計算每件商品的價值,如果折扣是0 ,則為優惠價格*/
         $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice :
                       ceil($this->Price[$i] * $this->Discount[$i])/100 );
         $this->TotalCost += $GiftPrice * $this->Count[$i] ;
       }
      }
     
      //**************以下為接口函數
     
      //*** 加一件商品
      // 判斷是否藍中已有,如有,加count,否則加一個新商品
      //首先都是改session的值,然后再調用update() and calculate()來更新成員變量
      function Add($a_ID , $a_Name , $a_Price , $a_Discount ,
                   $a_GoodPrice , $a_MaxCount , $a_Count)
      {
       global $sId , $sName , $sCount , $sPrice , $sDiscount ,
              $sGoodPrice , $sMaxCount ;
     
       $k=count($sId);
       for ($i=0; $i<$k; $i++)
       { //先找一下是否已經加入了這種商品
         if($sId[$i]==$a_ID)
         {
          $sCount[$i] += $a_Count ;
          break;
         }
       }
       if($i >= $k)
       { //沒有則加一個新商品種類
        $sId[]        = $a_ID;
        $sName[]      = $a_Name;
        $sPrice[]     = $a_Price;
        $sCount[]     = $a_Count;
        $sGoodPrice[] = $a_GoodPrice ;
        $sDiscount[]  = $a_Discount ;
        $sMaxCount[]  = $a_MaxCount ;
       }
     
       $this->Update(); //更新一下類的成員數據
       $this->Calculate();
      }
     
      //移去一件商品
      function Remove($a_ID)
      {
       global $sId , $sName , $sCount , $sPrice , $sDiscount ,
              $sGoodPrice , $sMaxCount ;
     
       $k = count($sId);
       for($i=0; $i < $k; $i++)
       {
         if($sId[$i] == $a_ID)
         {
           $sCount[$i] = 0 ;
           break;
         }
       }
     
       $this->Update();
       $this->Calculate();
      }
     
      //改變商品的個數
      function ModifyCount($a_i,$a_Count)
      {
       global $sCount;
     
       $sCount[$a_i] = $a_Count ;
       $this->Update();
       $this->Calculate();
      }
     
      /***************************
      清空所有的商品
      *****************************/
      function RemoveAll()
      {
       session_unregister('sId');
       session_unregister('sName');
       session_unregister('sPrice');
       session_unregister('sDiscount');
       session_unregister('sGoodPrice') ;
       session_unregister('sCount') ;
       session_unregister('sMaxCount') ;
       $this->SortCount = 0 ;
       $this->TotalCost = 0 ;
      }
     
      //是否某件商品已在藍內,參數為此商品的ID
      function Exists($a_ID)
      {
       for($i=0; $i<$this->SortCount; $i++)
       {
         if($this->Id[$i]==$a_ID) return TRUE;
       }
       return FALSE;
      }
     
      //某件商品在藍內的位置
      function IndexOf($a_ID)
      {
       for($i=0; $i<$this->SortCount; $i++)
       {
        if($this->Id[$i]==$id) return $i;
       }
       return 0;
      }
     
      //取一件商品的信息,主要的工作函數
      //返回一個關聯數組,
      function Item($i)
      {
       $Result[id]        = $this->Id[$i];
       $Result[name]      = $this->Name[$i];
       $Result[price]     = $this->Price[$i];
       $Result[count]     = $this->Count[$i];
       $Result[discount]  = $this->Discount[$i] ;
       $Result[goodprice] = $this->GoodPrice[$i] ;
       $Result[maxcount]  = $this->MaxCount[i] ;
       return $Result;
      }
     
      //取總的商品種類數
      function CartCount()
      {
       return $this->SortCount;
      }
     
      //取總的商品價值
      function GetTotalCost()
      {
       return $this->TotalCost;
      }

    ?>

  • 網友評論僅供網友表達個人看法,并不表明三亞資訊同意其觀點或證實其描述:
  • 驗證碼:
  • 關于我們      版權聲明      服務條款      聯系我們      站點地圖      sitemaps    瓊ICP備05002060號       ©Copyright 2003 - 2023  www.shjx-bf.cn  三亞資訊
    Powered by 霄榮廣告 傳遞美好
    国产欧美性爱,日本久久久久,日韩一级性爱,午夜激情av

    <i id="kyr1l"></i>