一个比较完善的购物车类_PHP教程
前不久做到一个项目需要用到购物车,考虑到可能经常用到,所以把它封装成一个类,以便以后调用。你可以简单的把这个类稍微修改一下就可以用在自己的程序里了,具体使用请见asp$type=1 target=_blank>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;$iSortCount;$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) { //没有则加一个新商品种类 $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 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; $iSortCount; $i++) { if($this->Id[$i]==$a_ID) return TRUE; } return FALSE; } //某件商品在蓝内的位置 function IndexOf($a_ID) { for($i=0; $iSortCount; $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; } }

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

요즘 휴대폰의 성능과 기능은 점점 더 강력해지고 있습니다. 거의 모든 휴대폰에는 사용자의 모바일 결제 및 신원 인증을 용이하게 하는 편리한 NFC 기능이 탑재되어 있습니다. 그러나 일부 Xiaomi 14Pro 사용자는 NFC 기능을 활성화하는 방법을 모를 수 있습니다. 다음으로 자세히 소개해드리겠습니다. Xiaomi 14Pro에서 NFC 기능을 활성화하는 방법은 무엇입니까? 1단계: 휴대폰의 설정 메뉴를 엽니다. 2단계: "연결 및 공유" 또는 "무선 및 네트워크" 옵션을 찾아 클릭합니다. 3단계: 연결 및 공유 또는 무선 및 네트워크 메뉴에서 "NFC 및 결제"를 찾아 클릭합니다. 4단계: "NFC 스위치"를 찾아서 클릭하세요. 일반적으로 기본값은 꺼짐입니다. 5단계: NFC 스위치 페이지에서 스위치 버튼을 클릭하여 켜세요.

페르마의 마지막 정리, AI가 정복할 것인가? 그리고 무엇보다 가장 의미 있는 부분은 AI가 풀려고 하는 페르마의 마지막 정리가 바로 AI가 쓸모없다는 것을 증명한다는 점이다. 옛날에는 수학이 순수한 인간 지능의 영역에 속했지만 지금은 이 영역이 고급 알고리즘에 의해 해독되고 짓밟히고 있습니다. Image 페르마의 마지막 정리는 수세기 동안 수학자들을 당황하게 만든 "악명 높은" 퍼즐입니다. 이는 1993년에 입증되었으며 이제 수학자들은 컴퓨터를 사용하여 증명을 재현하는 큰 계획을 세웁니다. 그들은 이 버전의 증명에 논리적 오류가 있으면 컴퓨터로 확인할 수 있기를 바랍니다. 프로젝트 주소: https://github.com/riccardobrasca/flt

아이폰16 프로의 CAD 파일이 노출됐는데, 디자인은 기존 루머와 일치한다. 지난해 가을 아이폰 15 프로에는 액션 버튼이 추가됐고, 올 가을 애플은 하드웨어 크기를 소폭 조정할 계획인 것으로 보인다. 캡처 버튼 추가 소문에 따르면 아이폰 16 프로는 두 번째 새 버튼을 추가할 수도 있는데, 이는 지난해에 이어 2년 연속 새 버튼이 추가되는 셈이다. 아이폰 16 프로에서는 새로운 캡처 버튼이 오른쪽 하단에 배치될 것이라는 소문이 돌고 있다. 이 디자인은 카메라 제어를 더욱 편리하게 하고 액션 버튼을 다른 기능에도 사용할 수 있게 할 것으로 예상된다. 이 버튼은 더 이상 일반 셔터 버튼이 아닙니다. 카메라에 관해서는 현재 iP에서

화면을 공중으로 밀어내는 것은 화웨이 메이트60 시리즈에서 높은 평가를 받는 화웨이의 기능이다. 이 기능은 휴대폰의 레이저 센서와 전면 카메라의 3D 깊이 카메라를 활용해 화면이 필요 없는 일련의 기능을 완성한다. 공중에서 TikTok을 스와이프하는 등 화면을 터치하는 기능이 있는데, Huawei Pocket 2를 사용하여 공중에서 TikTok을 스와이프하는 방법은 무엇인가요? Huawei Pocket2로 공중에서 스크린샷을 찍는 방법은 무엇입니까? 1. Huawei Pocket2의 설정을 엽니다. 2. 그런 다음 [접근성]을 선택합니다. 3. 클릭하여 [스마트 인식]을 엽니다. 4. [에어 스와이프 스크린], [에어 스크린샷], [에어 프레스] 스위치를 켜기만 하면 됩니다. 5. 사용 시 화면에서 20~40CM 거리를 두고 손바닥을 펴고 화면에 손바닥 아이콘이 나타날 때까지 기다려야 합니다.

WPS는 당사에서 흔히 사용하는 사무용 소프트웨어입니다. 긴 글을 편집할 때 글꼴이 너무 작아서 선명하게 보이지 않는 경우가 많아 글꼴과 전체 문서가 조정됩니다. 예를 들어 문서의 줄 간격을 조정하면 문서 전체가 매우 명확해집니다. 오늘은 구체적인 작업 단계를 알려드리겠습니다. 와서 살펴보세요. 조정하려는 WPS 텍스트 파일을 열고 [시작] 메뉴에서 단락 설정 툴바를 찾으면 작은 줄 간격 설정 아이콘(그림에서 빨간색 원으로 표시)이 표시됩니다. 2. 줄 간격 설정 오른쪽 하단에 있는 작은 역삼각형을 클릭하면 해당 줄 간격 값이 나타납니다. 줄 간격의 1~3배를 선택할 수 있습니다(그림의 화살표 참조). 3. 또는 해당 단락을 마우스 오른쪽 버튼으로 클릭하면 나타납니다.

실용 튜토리얼: PHP 및 MySQL을 사용한 장바구니 기능에 대한 자세한 설명 장바구니 기능은 웹사이트 개발에서 흔히 사용되는 기능 중 하나입니다. 장바구니를 통해 사용자는 구매하려는 상품을 장바구니에 쉽게 추가할 수 있습니다. 그 후 정산 및 결제를 진행합니다. 이 기사에서는 PHP와 MySQL을 사용하여 간단한 장바구니 기능을 구현하는 방법을 자세히 설명하고 구체적인 코드 예제를 제공합니다. 데이터베이스와 데이터 테이블을 생성하려면 먼저 MySQL 데이터베이스에 제품 정보를 저장할 데이터 테이블을 생성해야 합니다. 다음은 간단한 데이터 테이블입니다.

3월 2일 통계에 따르면 비트코인의 2계층 네트워크 MerlinChain의 총 TVL은 미화 30억 달러에 도달했습니다. 이 중 비트코인 생태자산은 15억9600만 달러 상당의 BTC, 4억400만 달러 상당의 BRC-20 자산 등 90.83%를 차지했다. 지난 달 MerlinChain의 총 TVL은 스테이킹 활동을 시작한 지 14일 만에 19억 7천만 달러에 이르렀으며, 이는 작년 11월에 출시된 Blast를 능가하며 가장 최근이자 똑같이 눈길을 사로잡습니다. 2월 26일, MerlinChain 생태계의 NFT 총 가치는 미화 4억 2천만 달러를 초과하여 이더리움 외에 NFT 시장 가치가 가장 높은 퍼블릭 체인 프로젝트가 되었습니다. 프로젝트 소개 MerlinChain은 OKX 지원입니다

C 언어와 PHP의 차이점 및 비교 분석 C 언어와 PHP는 모두 일반적인 프로그래밍 언어이지만 여러 측면에서 분명한 차이점이 있습니다. 이 기사에서는 C 언어와 PHP를 비교 분석하고 구체적인 코드 예제를 통해 이들 간의 차이점을 설명합니다. 1. 구문 및 사용법: C 언어: C 언어는 프로세스 지향 프로그래밍 언어로 주로 시스템 수준 프로그래밍 및 임베디드 개발에 사용됩니다. C 언어의 구문은 상대적으로 간단하고 저수준이며, 메모리를 직접 조작할 수 있고 효율적이고 유연합니다. C 언어는 프로그래머의 프로그램 완성도를 강조합니다.
