이 기사의 예에서는 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 프로그래밍 설계에 도움이 되기를 바랍니다.