• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    一個比較完善的購物車類

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 10次 | 進入軟件測試論壇討論

    領測軟件測試網     前不久做到一個項目需要用到購物車,考慮到可能經常用到,所以把它封裝成一個類,以便以后調用。你可以簡單的把這個類稍微修改一下就可以用在自己的程序里了,具體使用請見http://bigeagle.wotoo.com/article.asp?type=1。

    <?
    /*****************************************************************************/
    /*                                                                           */
    /* file type:      包含文件,建議后綴為.inc                                  */
    /*                                                                           */
    /* file name:      cart.inc                                                  */
    /*                                                                           */
    /* Description:    定義一個購車類                                            */
    /*                                                                           */
    /* Func list :     class cart                                                */
    /*                                                                           */
    /* author :        bigeagle                                                  */
    /*                                                                           */
    /* date :          2000/12/24                                                */
    /*                                                                           */
    /* History:        2000/12/24  finished                                      */
    /*                                                                           */
    /*****************************************************************************/

    //定義本文件常量
    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;
      }
    }  

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>