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

PHP
初学者入门:细述PHP4的核心Zend
网友分享:php与XML、XSLT、Mysql结合运用
DISCUZ架构:积分系统代码分析一
DISCUZ架构:积分系统代码分析二
DISCUZ架构:积分系统代码分析三
设置COOKIE保留时间为浏览器进程
通过ADO调用Access数据库和COM程序
判断一数是否在一已知数组中的函数
如何使用PHP中的日期和时间函数
一个PHP中常用email校验语句的解释
如何利Mcrypt扩展库进行加密和解密
PHP脚本的8个技巧(4)动态创建图象
实用技巧:PHP截取中文字符串的问题
PHP与已存在的Java应用程序集成
PHP3中使用ORACLE函数的使用说明
PHP技巧:得到一个字符串的最后一个字符
Linux系统下让PHP提高性能的工具APC
为您详解PHP开发工具的使用与分析
如何使用PHP开发高效的WEB系统
用 PHP V4 开发的代码迁移到 PHP V5

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 94 ::
收藏到网摘: 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
    *   函数功