最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現(xiàn)的比較完善的購物車類

 更新時間:2014年12月02日 09:18:35   投稿:shichen2014  
這篇文章主要介紹了PHP實現(xiàn)的比較完善的購物車類,包含了針對商品常見的增加、刪除與修改等功能,非常具有實用價值,需要的朋友可以參考下

本文實例講述了PHP實現(xiàn)的比較完善的購物車類。分享給大家供大家參考。具體實現(xiàn)方法如下:

前不久做到一個項目需要用到購物車,考慮到可能經(jīng)常用到,所以把它封裝成一個類,以便以后調(diào)用,感興趣的讀者可以簡單的把這個類稍微修改一下就可以用在自己的程序里了.

復(fù)制代碼 代碼如下:
<?php
/*****************************************************************************/
/*                                                                           */
/* file type:      包含文件,建議后綴為.inc                                  */
/*                                                                           */
/* file name:      cart.inc                                                  */
/*                                                                           */
/* Description:    定義一個購車類                                            */
/*                                                                           */
/* Func list :     class cart                                                */
/*                                                                           */
/* author :        bigeagle                                                  */
/*                                                                           */
/*                                                                           */
/*****************************************************************************/
 
//定義本文件常量
define("_CART_INC_" , "exists") ;
 
/*購物車類*/
class TCart
{
 
  var $SortCount;            //商品種類數(shù)
  var $TotalCost;            //商品總價值
 
  var $Id;                   //每類商品的ID(數(shù)組)
  var $Name;                 //每類商品的名稱(數(shù)組)
  var $Price;                //每類商品的價格(數(shù)組)
  var $Discount;             //商品的折扣(數(shù)組)
  var $GoodPrice ;           //商品的優(yōu)惠價格(數(shù)組)
  var $Count;                //每類商品的件數(shù)(數(shù)組)
  var $MaxCount ;            //商品限量(數(shù)組)
 
  //******構(gòu)造函數(shù)
  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();
  }
 
  //********私有,根據(jù)session的值更新類中相應(yīng)數(shù)據(jù)
  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 ;
 
   //計算商品總數(shù)
   $this->SortCount=count($sId);
 
  }
 
  //********私有,根據(jù)新的數(shù)據(jù)計算每類商品的價值及全部商品的總價
  function Calculate()
  {
   for($i=0;$i<$this->SortCount;$i++)
   {
     /*計算每件商品的價值,如果折扣是0 ,則為優(yōu)惠價格*/
     $GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice :
                   ceil($this->Price[$i] * $this->Discount[$i])/100 );
     $this->TotalCost += $GiftPrice * $this->Count[$i] ;
   }
  }
 
  //**************以下為接口函數(shù)
 
  //*** 加一件商品
  // 判斷是否藍中已有,如有,加count,否則加一個新商品
  //首先都是改session的值,然后再調(diào)用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++)
   { //先找一下是否已經(jīng)加入了這種商品
     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(); //更新一下類的成員數(shù)據(jù)
   $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();
  }
 
  //改變商品的個數(shù)
  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 ;
  }
 
  //是否某件商品已在藍內(nèi),參數(shù)為此商品的ID
  function Exists($a_ID)
  {
   for($i=0; $i<$this->SortCount; $i++)
   {
     if($this->Id[$i]==$a_ID) return TRUE;
   }
   return FALSE;
  }
 
  //某件商品在藍內(nèi)的位置
  function IndexOf($a_ID)
  {
   for($i=0; $i<$this->SortCount; $i++)
   {
    if($this->Id[$i]==$id) return $i;
   }
   return 0;
  }
 
  //取一件商品的信息,主要的工作函數(shù)
  //返回一個關(guān)聯(lián)數(shù)組,
  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;
  }
 
  //取總的商品種類數(shù)
  function CartCount()
  {
   return $this->SortCount;
  }
 
  //取總的商品價值
  function GetTotalCost()
  {
   return $this->TotalCost;
  }

?>

希望本文所述對大家的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • php 抽象類的簡單應(yīng)用

    php 抽象類的簡單應(yīng)用

    我想博客中的 文章列表和單個的文章閱讀 統(tǒng)一起來,我覺得除了sql查詢語句結(jié)構(gòu)不同,HTML代碼不同,其它也就一樣。不過話說回來,這兩個都是主要功能,所以這的確有點不適合,不過昨晚讀了一點設(shè)計模式,好歹得寫點啥好。
    2011-09-09
  • 深入解析PHP中逗號與點號的區(qū)別

    深入解析PHP中逗號與點號的區(qū)別

    大部分同學(xué)都知道逗號要比點號快,但就是不知道為什么,更不知道逗號與點號這兩者之間到底有什么區(qū)別。下面小編就來詳細的為大家介紹一下,需要的朋友可以過來參考下
    2013-08-08
  • php將textarea數(shù)據(jù)提交到mysql出現(xiàn)很多空格的解決方法

    php將textarea數(shù)據(jù)提交到mysql出現(xiàn)很多空格的解決方法

    這篇文章主要介紹了php將textarea數(shù)據(jù)提交到mysql出現(xiàn)很多空格的解決方法,分析了空格出現(xiàn)的原因以及刪除空格的簡單實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP大轉(zhuǎn)盤中獎概率算法實例

    PHP大轉(zhuǎn)盤中獎概率算法實例

    這篇文章主要介紹了PHP大轉(zhuǎn)盤中獎概率算法,實例講述了概率算法的實現(xiàn)過程,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • php 刪除數(shù)組元素

    php 刪除數(shù)組元素

    array_filter — 用回調(diào)函數(shù)過濾數(shù)組中的單元
    2009-01-01
  • 利用瀏覽器的Javascript控制臺調(diào)試PHP程序

    利用瀏覽器的Javascript控制臺調(diào)試PHP程序

    現(xiàn)在,越來越多的瀏覽器都有了開發(fā)這工具或者Javascript控制臺,通過這些工具,我們可以很方便的顯示PHP代碼中的變量或數(shù)組值
    2014-01-01
  • php+redis在實際項目中HTTP 500: Internal Server Error故障排除

    php+redis在實際項目中HTTP 500: Internal Server Error故障排除

    用戶量快速增長,訪問量在短時間內(nèi)翻倍,由于前期容量規(guī)劃做得比較好,硬件資源可以支撐,可是軟件系統(tǒng)方面出現(xiàn)了大問題:40% 的請求都會返回 HTTP 500: Internal Server Error
    2017-02-02
  • PHP封裝的非對稱加密RSA算法示例

    PHP封裝的非對稱加密RSA算法示例

    這篇文章主要介紹了PHP封裝的非對稱加密RSA算法,結(jié)合實例形式分析了php實現(xiàn)的RSA加密算法類及其相關(guān)使用技巧,需要的朋友可以參考下
    2018-05-05
  • php7下安裝event擴展方法

    php7下安裝event擴展方法

    下面小編就為大家分享一篇php7下安裝event擴展方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • php中通過Ajax如何實現(xiàn)異步文件上傳的代碼實例

    php中通過Ajax如何實現(xiàn)異步文件上傳的代碼實例

    php結(jié)合Ajax技術(shù)如何實現(xiàn)異步文件上傳 有了file filereader 對象的支持,異步文件上傳將變得簡單。(以前都會把form提交到iframe來實現(xiàn))
    2011-05-05

最新評論

虞城县| 山阳县| 大姚县| 昆山市| 达州市| 兴山县| 政和县| 长岭县| 龙胜| 清河县| 凤城市| 新巴尔虎右旗| 定陶县| 互助| 庆城县| 西昌市| 浦县| 永春县| 读书| 德格县| 凉城县| 云龙县| 浮梁县| 固原市| 西丰县| 双峰县| 乌拉特后旗| 九台市| 虞城县| 五大连池市| 金沙县| 图木舒克市| 芦溪县| 临澧县| 井陉县| 长兴县| 璧山县| 汉沽区| 厦门市| 太仓市| 镇江市|