首页后端开发PHP示例PHP购物车类Cart.class.php定义与用法

示例PHP购物车类Cart.class.php定义与用法

时间2024-02-02 08:11:02发布访客分类PHP浏览229
导读:收集整理的这篇文章主要介绍了示例PHP购物车类Cart.class.php定义与用法,觉得挺不错的,现在分享给大家,也给大家做个参考。本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下:之前的...
收集整理的这篇文章主要介绍了示例PHP购物车类Cart.class.php定义与用法,觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下:

之前的开发人员使用了JS的技术开发了一套前台购物车(删除添加什么的都使用JS),但是浏览器兼容不好, 今天终于出问题了, 有个老外购物了产品, 由于使用了不知名的浏览器, chrome, opera…都有可能, 因此, 我多了一份工作, 重写购物车.

不打算再使用JS, 直接考虑php.

找到了一个购物车的类, 使用起来很方便.

相关学习推荐:PHP编程从入门到精通

Cart.class.php源码:

?php/** * Cart * * 购物车类 * * @author doodoopwtITle @yahoo.COM.cn="">
 * @package  Cart * @category Cart * @license  PHP License * @access  public * @version  $revision: 1.10 $ */Class Cart{
     VAR $cart;
     var $totalCount;
     //商品总数量 var $totalPRices;
 //商品总金额 /**  * Cart Constructor  *  * 类的构造函数,使购物车保持稳定的初始化状态  *  * @static  * @access public  * @return void 无返回值  * @param void 无参数  */ function Cart(){
     $this->
    totalCount = 0;
     $this->
    totalPrice = 0;
     $this->
    cart = array();
 }
 // }
}
}
 // {
{
{
 add($item) /** * 增加商品到当前购物车 * * @access public * @param array $item 商品信息(一维数组:array(商品ID,商品名称,商品单价,商品数量)) * @return array 返回当前购物车内商品的数组 */ function add($item){
     if(!is_array($item)||is_null($item)) return $this->
    cart;
 if(!is_numeric(end($item))||(!is_numeric(prev($item)))) {
     echo "价格和数量必须是数字";
     return $this->
    cart;
 }
     reset($item);
     //这一句是必须的,因为上面的判断已经移动了数组的指标 $key = current($item);
     if($key=="") return $this->
    cart;
     if($this->
_isExists($key)){
     //商品是否已经存在? $this->
    cart[$key]['count'] = end($item);
     return $this->
    cart;
 }
     $this->
    cart[$key]['ID'] = $key;
     $this->
    cart[$key]['name'] = next($item);
     $this->
    cart[$key]['price'] = next($item);
     $this->
    cart[$key]['count'] = next($item);
     return $this->
    cart;
 }
 // }
}
}
 // {
{
{
     add($item) /** * 从当前购物车中取出部分或全部商品 * 当 $key=="" 的时候,清空当前购物车 * 当 $key!=""&
    &
    $count=="" 的时候,从当前购物车中拣出商品ID号为 $key 的全部商品 * 当 $key!=""&
    &
$count!="" 的时候,从当前购物车中拣出 $count个 商品ID号为 $key 的商品 * * @access public * @param string $key 商品ID * @return mixed 返回真假或当前购物车内商品的数组 */ function remove($key="",$count=""){
 if($key=="") {
     $this->
    cart = array();
     return true;
 }
     if(!array_key_exists($key,$this->
    cart)) return false;
 if($count==""){
     //移去这一类商品 unset($this->
    cart[$key]);
 }
else{
     //移去$count个商品 $this->
    cart[$key]['count'] -= $count;
     if($this->
    cart[$key]['count']=0) unset($this->
    cart[$key]);
 }
     return $this->
    cart;
 }
 // }
}
}
 // {
{
{
     modi($key,$value) /** * 修改购物车内商品ID为 $key 的商品的数量为 $value * * @access public * @param string $key 商品ID * @param int $value 商品数量 * @return array 返回当前购物车内商品的数组;
 */ function modi($key,$value){
     if(!$this->
    _isExists($key)) return $this->
    cart();
 //不存在此商品,直接返回 if($value=0){
      // value 太小,全部删除 unset($this->
    cart[$key]);
     return $this->
    cart;
 }
     $this->
    cart[$key]['count'] = $value;
     return $this->
    cart;
 }
     /** * 返回当前购物车内商品的数组 * * @access public * @return array 返回当前购物车内商品的数组;
 */ function getCart(){
     return $this->
    cart;
 }
 // }
}
}
 // {
{
{
     _isExists($key) /** * 判断当前购物车中是否存在商品ID号为$key的商品 * * @access private * @param string $key 商品ID * @return bool true or false;
 */ function _isExists($key) {
     if(isset($this->
    cart[$key])&
    &
    !empty($this->
    cart[$key])&
    &
    array_key_exists($key,$this->
    cart)) return true;
     return false;
 }
 // }
}
}
 // {
{
{
     iSEMpty() /** * 判断当前购物车是否为空,即没有任何商品 * * @access public * @return bool true or false;
 */ function isEmpty(){
     return !count($this->
    cart);
 }
 // }
}
}
 // {
{
{
     _stat() /** * 取得部分统计信息 * * @access private * @return bool true or false;
 */ function _stat(){
     if($this->
    isEmpty()) return false;
     foreach($this->
cart as $item){
     $this->
    totalCount = @end($item);
     $this->
    totalPrices = @prev($item);
 }
     return true;
 }
 // }
}
}
 // {
{
{
     totalPrices() /** * 取得当前购物车所有商品的总金额 * * @access public * @return float 返回金额;
 */ function totalPrices(){
     if($this->
    _stat()) return $this->
    totalPrices;
     return 0;
 }
 // }
}
}
 // {
{
{
     isEmpty() /** * 取得当前购物车所有商品的总数量和 * * @access public * @return int ;
 */ function totalCount(){
     if($this->
    _stat()) return $this->
    totalCount;
     return 0;
 }
}
    //End Class Cart?>
    

使用该类的方法:

?phpheader("Content-tyPE:text/htML;
    charset=utf8");
    //调用实例require_once 'Cart.class.php';
    session_start();
if(!isset($_SESSION['cart'])) {
     $_SESSION['cart'] = new Cart;
}
    $cart =&
     $_SESSION['cart'];
    if( ($_SERVER['REQUEST_METHOD']=="POST")&
    &
($_POST['action']=='add') ){
     $p = $_POST['p'];
     $items = $cart->
    add($p);
}
    if( ($_GET['action']=='remove')&
    &
($_GET['key']!="") ) {
     $items = $cart->
    remove($_GET['key']);
}
    if( ($_SERVER['REQUEST_METHOD']=="POST")&
    &
($_POST['action']=='modi') ){
     $key = $_POST['key'];
     $value = $_POST['value'];
     for($i=0;
    $icount ($key);
$i="" $items="$cart-" ){
    ="">
    modi($key[$i],$value[$i]);
 }
}
    $items = $cart->
    getCart();
    //打印echo "";
    setlocale(LC_MONETARY, 'it_IT');
foreach($items as $item){
     echo "";
     echo "table border="1">
    tbody>
    tr>
    form action="\&
    quot;
    index.php\&
    quot;
    " method="\" post\??="">
    /form>
    td>
    ID:".$item['ID']."input type="hidden" value=".$item['ID']." name="key[]">
    ";
     echo "/td>
    td>
    产品:".$item['name'];
     echo "/td>
    td>
    单价:".$item['price'];
     echo "/td>
    td>
    input value=".$item['count']." name="value[]">
    ";
     $sum = $item['count']*$item['price'];
     echo "/td>
    td>
    合计:".round($sum,2);
     echo "/td>
    td>
    input onclick="\&
    quot;
    location='?action=remove&
    key=&
    quot;
    .$item['ID'].&
    quot;
    '\&
    quot;
    " type="button" value="删除">
    ";
 }
     echo "input type="hidden" value="modi" name="action">
    ";
     echo "/td>
    /tr>
    tr>
    td colspan="7">
    input type="submit" value="提交查询内容">
    ";
     echo "/td>
    /tr>
    /tbody>
    /table>
    ";
    ?>
    hr>
    form action="tmp.php" method="post">
    ID:input name="p[]">
    品名:input name="p[]">
    单价:input name="p[]">
    数量:input name="p[]">
    input type="hidden" value="add" name="action">
    input type="submit" value="提交查询内容">
    /form>
    /count>
    

以上就是示例PHP购物车类Cart.class.php定义与用法的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 示例PHP购物车类Cart.class.php定义与用法
本文地址: https://pptw.com/jishu/596583.html
示例php实现保存周期为1天的购物车类 直击php反射学习之不用new方法实例化类操作

游客 回复需填写必要信息