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

PHP
PHP实例教程:Output Control输出函数
memcached和mysql主从环境下PHP开发
基于LAMP架构设计的WEB框架
PHP代码:验证IPV6地址是否合法的正则
PHP环境快读搭建绿色软件包PHPnow
PHP教程:$_SERVER的详细参数整理
php获取url字符串截取路径的文件名和扩展名的函数
在命令行下运行PHP脚本[带参数]的方法
PHP 实用代码收集
PHP 时间转换Unix时间戳代码
关于php fread()使用技巧
PHPMailer 中文使用说明小结
php addslashes和mysql_real_escape_string
php cout<<的一点看法
PHP 变量的定义方法
php学习之 认清变量的作用范围
php 静态变量与自定义常量的使用方法
认识并使用PHP超级全局变量
通过具体程序来理解PHP里面的抽象类
php读取xml实例代码

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


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