介绍
如何使用php实现保存周期为1天的购物车类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
购物车类饼干保存,保存周期为1天注意:浏览器必须支持饼干才能够使用
示例代码:
& lt; php ?/* * *购物车类饼干保存,保存周期为1天注意:浏览器必须支持饼干才能够使用 */类CartAPI { 私人数组$ CartArray=();//存放购物车的二维数组 私人CartCount美元;//统计购物车数量 公共到期美元=86400;//饼干过期时间,如果为0则不保存到本地单位为秒/* * *构造函数初始化操作如果$ Id不为空,则直接添加到购物车 * */公共函数__construct ($ Id=啊? $ Name=啊? $ Price1=啊? $ Price2=啊? $ Price3=啊? $ Count=啊? $图像=啊?到期=86400美元){ if ($ Id !=?“,,is_numeric ($ Id)) { 这→美元=$到期期限届满; $ this→addCart (Id、名称、美元Price1美元,美元Price2, Price3美元,美元,美元图片); } }/* * *添加商品到购物车 * * @param int $ Id商品的编的号 * @param字符串$名商品名称 * @param十进制美元Price1商品价格 * @param十进制美元Price2商品价格 * @param十进制美元Price3商品价格 * @param int数美元的商品数量 * @param字符串$形象商品图片 * @return如果商品存在,则在原来的数量上加1,并返回错误的 */公共函数addCart (Id、名称、美元Price1美元,美元Price2, Price3美元,美元计算,图像美元){ $ this→CartArray=$这→CartView ();//把数据读取并写入数组 if ($ this→checkItem ($ Id)){//检测商品是否存在 $ this→ModifyCart (Id、数美元,0);//商品数量加数美元 返回错误; } $ this→CartArray [0] [$ Id]=$ Id; $ this→CartArray [1] [$ Id]=$名称; $ this→CartArray [2] [$ Id]=$ Price1; $ this→CartArray [3] [$ Id]=$ Price2; $ this→CartArray [4] [$ Id]=$ Price3; $ this→CartArray [5] [$ Id]=$计数; $ this→CartArray [6] [$ Id]=$形象; $ this→保存(); }/* * *修改购物车里的商品 * * @param int $ Id商品编的号 * @param int数美元的商品数量 * @param int美元国旗修改类型0:加1:减2:修改3:清空 * @return如果修改失败,则返回错误的 */公共函数ModifyCart (Id、数美元,美元标志=啊?{ $ tmpId=$ Id; $ this→CartArray=$这→CartView ();//把数据读取并写入数组 tmpArray=,这→美元CartArray;//引用 如果(! is_array ($ tmpArray[0]))返回false; 如果($ Id & lt;1){ 返回错误; } foreach ($ tmpArray[0]美元项目){ 如果(项目===tmpId美元){ 开关(美元标志){ 例0://添加数量一般计数为1美元 美元tmpArray [5] [$ Id] +=$计数; 打破; 案例1://减少数量 美元tmpArray [5] [$ Id] -=美元计数; 打破; 案例2://修改数量 如果($ Count==0) { 设置($ tmpArray [0] [$ Id]); 设置($ tmpArray [1] [$ Id]); 设置($ tmpArray [2] [$ Id]); 设置($ tmpArray [3] [$ Id]); 设置($ tmpArray [4] [$ Id]); 设置($ tmpArray [5] [$ Id]); 设置($ tmpArray [6] [$ Id]); 打破; 其他}{ 美元tmpArray [5] [$ Id]=$计数; 打破; } 案例3://清空商品 设置($ tmpArray [0] [$ Id]); 设置($ tmpArray [1] [$ Id]); 设置($ tmpArray [2] [$ Id]); 设置($ tmpArray [3] [$ Id]); 设置($ tmpArray [4] [$ Id]); 设置($ tmpArray [5] [$ Id]); 设置($ tmpArray [6] [$ Id]); 打破; 默认值: 打破; } } } $ this→保存(); }/* * *清空购物车 * */公共函数RemoveAll () { $ this→CartArray=array (); $ this→保存(); }/* * *查看购物车信息 * * @return数组返回一个二维数组 */公共函数CartView () { (饼干=stripslashes美元_COOKIE [& # 39; CartAPI& # 39;]); 如果(! $ cookie)返回false; 美元$ tmpUnSerialize=unserialize(饼干); 返回tmpUnSerialize美元; }/* * *检查购物车是否有商品 * * @return bool如果有商品,返回真,否则假 */公共函数checkCart () { tmpArray=这→美元CartView (); 如果(count ($ tmpArray [0]) & lt;1){ 返回错误; } 返回true; }/* * *商品统计 * * @return数组返回一个一维数组arr美元[0]:产品1的总价格$ arr[1:产品2得总价格$ arr[2]:产品3的总价格$ arr[3]:产品的总数量 */公共函数CountPrice () { tmpArray=这→美元CartArray=$这→CartView (); 数组$ outArray=();//一维数组//0是产品1的总价格//1是产品2的总价格//2是产品3的总价格//3是产品的总数量 $ i=0; 如果(is_array ($ tmpArray [0])) { foreach ($ tmpArray[0]美元关键=祝辞val美元){ 美元outArray [0] +=$ tmpArray [2] [$ key] *美元tmpArray [5] [$ key]; 美元outArray [1] +=$ tmpArray [3] [$ key] *美元tmpArray [5] [$ key]; 美元outArray [2] +=$ tmpArray [4] [$ key] *美元tmpArray [5] [$ key]; 美元outArray [3] +=$ tmpArray [5] [$ key]; 美元我+ +; } } 返回outArray美元; }/* * *统计商品数量 * * @return int */公共函数CartCount () { tmpArray=这→美元CartView (); $ tmpCount=count ($ tmpArray [0]); $ this→CartCount=$ tmpCount; 返回tmpCount美元; }/* * *保存商品如果不使用构造方法,此方法必须使用 * */公共函数保存(){ tmpArray=这→美元CartArray; $ tmpSerialize=序列化($ tmpArray); setcookie (“CartAPI" tmpSerialize美元,时间()+ $ this→到期); }/* * *检查购物车商品是否存在 * * @param int $ Id * @return bool如果存在真实否则假 */私有函数checkItem ($ Id) { tmpArray=这→美元CartArray; 如果(! is_array ($ tmpArray[0]))返回; foreach ($ tmpArray[0]美元项目){ if ($ item===$ Id)返回true; } 返回错误; } } ?在如何使用php实现保存周期为1天的购物车类