当前位置: 首页 > 图文教程 > 网络编程 > PHP > 提供一个最简单的购物车

PHP
PHP设计聊天室步步通
PHPShop存在多个安全漏洞
PHP数据库开发知多少
利用js调用后台php进行数据处理原码
基于PHP与XML的PDF文档生成技术
PHP应用提速面面观
用PHP将数据导入到Foxmail
Win2000+Apache+MySql+PHP4+PERL安装使用小结
新版mysql+apache+php Linux安装指南
PHP利用COM对象访问SQLServer、Access
PHP中实现进程间通讯
用PHP开发GUI
新版PHP极大的增强功能和性能
利用文件属性结合Session实现在线人数统计
初探PHP5
用libtemplate实现静态网页生成
用PHP实现WEB动态网页静态
在Windows中安装Apache2和PHP4的权威指南
用PHP编程开发“虚拟域名”系统
15个小时----从修改程序到自己些程序

PHP 中的 提供一个最简单的购物车


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 174 ::
收藏到网摘: n/a

1、session_start()为什么不写在类里面?
答: 如果在类中session_start();那么当程序中再次出现session_start()时会出错
2、不要再每次增加商品和修改数量的时候计算金额,只存数量和单价就可以了,需要金额的时候再计算比较好点
答:好在这只是数组操作,应该对效率影响不大,所以我还是参照现在网上商店的作法,给出计算结果
3、为什么把价格取整?
答:这的确是一个重大失误,价格不能intval而应floatval.

以下把修改后的文件再发一次.
cart.class.php

已经修改后的PHP代码:------------------------------------------------------------------

<?php
/**
*  类名: cart
*  描述: 尝试以最简单的方式实现购物车
*  其他: 2004-8-19
*/
class cart
{
    /**
    *   函数名称:   addItem
    *   函数功能:   添加商品
    *   输入参数:   $data ------------- 商品数组
    *   函数返回值: none
    *   其它说明:   因为数据是记录在session中,所以不用返回
    */
    function addItem($data)
    {
        if(is_array($data)&&!empty($data))
        {
            foreach($data as $key=>$val)
            {
                // 如果商品存在就加数量和价格
                if($this->_isExists($key))
                {
                    $_SESSION['cart'][$key]["count"] += floatval($val['price'])*intval($val['num']);
                    $_SESSION['cart'][$key]["num"]   += intval($val['num']);
                }
                // 否则直接加入
                else
                {
                    $_SESSION['cart'][$key]  = $data[$key];
                    $_SESSION['cart'][$key]["name"]  = $val['name'];
                    $_SESSION['cart'][$key]["price"] = $val['price'];
                    $_SESSION['cart'][$key]["count"] = floatval($val['price'])*intval($val['num']);
                    $_SESSION['cart'][$key]["num"]   = intval($val['num']);
                }
            }
        }
    }
 
    /**
    *   函数名称:   _isExists
    *   函数功