>  기사  >  백엔드 개발  >  PHP_php 기술로 구현된 비교적 완전한 장바구니 클래스

PHP_php 기술로 구현된 비교적 완전한 장바구니 클래스

WBOY
WBOY원래의
2016-05-16 20:29:291244검색

이 기사의 예에서는 PHP로 구현된 비교적 완전한 장바구니 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

저는 최근에 장바구니를 사용해야 하는 프로젝트를 완료했습니다. 자주 사용할 수 있다는 점을 고려하여 향후 통화를 위해 클래스에 캡슐화했습니다. 관심 있는 독자는 이 클래스를 직접 수정하여 사용할 수 있습니다. 프로그램입니다.

코드 복사 코드는 다음과 같습니다.
/************************************************** ***************************/
// /* 파일 형식: 파일을 포함하며, 권장 접미사는 ​​.inc입니다. // /* 파일 이름: cart.inc // /* 설명: 자동차 구매 카테고리를 정의합니다 */
// /* 기능 목록: 클래스 카트 // /* 작성자: bigeagle //// /************************************************** ***************************/

//이 파일에 대한 상수 정의
정의("_CART_INC_" , "존재합니다")

/*장바구니 클래스*/
클래스 TCart
{

var $SortCount; //제품 카테고리 수
var $TotalCost; //상품의 총 가치

var $Id; //각 제품 유형의 ID(배열)
var $Name; //각 제품 유형의 이름(배열)
var $Price; //제품 유형별 가격(배열)
var $Discount; //제품 할인(배열)
var $GoodPrice ; //상품 우대 가격(배열)
var $Count; //제품 유형별 개수(배열)
var $MaxCount ; //제품 제한(배열)

//******构造函数
  함수 TCart()
  {
   $this->SortCount=0;
 
   세션_시작(); //初始化一个세션
   session_register('sId');
   session_register('이름');
   session_register('sPrice');
   session_register('sDiscount');
   session_register('sGoodPrice') ;
   session_register('sCount') ;
   session_register('sMaxCount') ;
 
   $this->업데이트();
   $this->계산();
  }
 
  //********私有,根据session的值更新类中相应数据
  함수 업데이트()
  {
    전역 $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice;
 
   if(!isset($sId) 또는 !isset($sName) 또는 !isset($sPrice)
      또는 !isset($sDiscount) 또는 !isset($sMaxCount)
      또는 !isset($sGoodPrice) 또는 !isset($sCount)) 반환;
 
   $this->ID        =$sId;
   $this->이름      =$sName;
   $this->가격     =$s가격;
   $this->개수     =$s개수;
   $this->할인  = $sDiscount ;
   $this->GoodPrice = $sGoodPrice ;
   $this->MaxCount  = $sMaxCount ;
 
   //计算商품总数
   $this->SortCount=count($sId);
 
  }
 
  //********확실히 새로운 제품이 없습니다.
  함수 계산()
  {
   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]
}
}

//**************** 인터페이스 기능은 다음과 같습니다

//*** 항목 추가
// 파란색이 이미 있는지 확인하고, 그렇다면 개수를 추가하고, 그렇지 않으면 새 제품을 추가합니다.
//먼저 세션 값을 변경한 후 update() 및calculate()를 호출하여 멤버 변수를 업데이트합니다
함수 추가($a_ID , $a_Name , $a_Price , $a_Discount ,
$a_GoodPrice, $a_MaxCount, $a_Count)
{
글로벌 $sId , $sName , $sCount , $sPrice , $sDiscount ,
$sGoodPrice , $sMaxCount

$k=개수($sId)
($i=0; $i<$k; $i )
{ //먼저 이 상품이 추가되었는지 확인하세요
If($sId[$i]==$a_ID)
{
$sCount[$i] = $a_Count
        휴식
}  
}
if($i >= $k)
{ //그렇지 않은 경우 새 제품 카테고리를 추가하세요.
$sId[] = $a_ID
$s이름[] = $a_이름
$sPrice[] = $a_가격
$sCount[] = $a_Count
$sGoodPrice[] = $a_GoodPrice
$sDiscount[] = $a_할인
$sMaxCount[] = $a_MaxCount
}

$this->Update(); //클래스의 멤버 데이터 업데이트
$this->계산()
}

//항목 제거
함수 제거($a_ID)
{
글로벌 $sId , $sName , $sCount , $sPrice , $sDiscount ,
$sGoodPrice , $sMaxCount

$k = 개수($sId)
for($i=0; $i < $k; $i )
{
If($sId[$i] == $a_ID)
{
         $sCount[$i] = 0
        휴식
}  
}

$this->업데이트()
$this->계산()
}

//항목 개수 변경
함수 ModifyCount($a_i,$a_Count)
{
전역 $sCount

$sCount[$a_i] = $a_Count
$this->업데이트()
$this->계산()
}

/*****************************
모든 제품 지우기
*****************************/
함수 RemoveAll()
{
session_unregister('sId')
session_unregister('이름')
Session_unregister('sPrice')
Session_unregister('sDiscount')
session_unregister('sGoodPrice')
session_unregister('sCount')
session_unregister('sMaxCount')
$this->SortCount = 0
$this->TotalCost = 0
}

//특정 상품이 이미 파란색으로 되어 있는지 여부는 해당 상품의 ID가 파라미터입니다
함수 존재($a_ID)
{
for($i=0; $i<$this->SortCount; $i )
{
If($this->Id[$i]==$a_ID)는 TRUE를 반환합니다.
}
거짓 반환
}

//파란색으로 표시된 특정 제품의 위치
함수 IndexOf($a_ID)
{
for($i=0; $i<$this->SortCount; $i )
{
If($this->Id[$i]==$id) return $i; }
0을 반환합니다.
}

//제품에 대한 정보 얻기, 주요 작업 기능
//연관 배열을 반환합니다.
기능항목($i)
{
$Result[id] = $this->ID[$i]
$Result[이름] = $this->이름[$i]
$Result[가격] = $this->가격[$i]
$Result[count] = $this->개수[$i]
$Result[할인] = $this->할인[$i]
$Result[goodprice] = $this->좋은 가격[$i]
$Result[maxcount] = $this->MaxCount[i]
$결과 반환
}

//제품 카테고리의 총 개수를 가져옵니다
함수 CartCount()
{
$this->SortCount
반환 }

//전체 제품 가치 가져오기
함수 GetTotalCost()
{
$this->TotalCost 반환
}
}
?>

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.