程式樂活學 - 購物車範例 |
|
sam
更新時間:2013/3/12 下午 10:22:59 |
|
請問老師: 程式樂活學 - 購物車範例: wfcart.php中, 一開始的var $items = array();裡面要存放的是什麼? 我一開始以為是存放商品的id, 但看到function get_contents()的最後面$items[] = $item;, $item存放了id、qty、price、info、subtotal, 而$item又存到$items[]內, 應該就變成$items[]=array($item=>array(id,qty,price,info,subtotal)); 我不太懂這一整段的意思,可以幫我說明一下嗎? 謝謝! |
|
|
|
文淵閣工作室
更新時間:2013/3/13 上午 09:09:45 |
|
您好, 它是將加入購物車商品形成一個陣列, 再存入另一個陣列之中。 也就是母陣列裡有子陣列, 這個觀念與資料庫相同。 |
|
|
|
sam
更新時間:2013/3/13 上午 10:14:31 |
|
請問老師: 1、母陣列裡有子陣列的意思是2維陣列嗎? 2、所以$items裡面存放的是$item['id']、$item['qty']、 $item['price']、$item['info']、$item['subtotal']這些資訊嗎? |
|
|
|
sam
更新時間:2013/3/14 上午 11:36:53 |
|
請問老師: 我假設$items裡面存放的是: 商品id:01, 購買數量:2個, 商品價格:100元, 商品資訊:商品名稱。 執行了下面的程式碼,跑出來的結果非常不合理, 一直卡在這邊,不知道哪邊的問題, 有看到您回答的另一篇:http://www.e-happy.com.tw/indexforum.asp?bid=10066, 還有老師上面的回答我還是想不通, 不知老師可否用例子的方式詳細解說一下呢? 謝謝老師!
<?php
class wfCart { var $total = 0; var $itemcount = 0; var $items = array(01,2,100,'商品名稱'); var $itemprices = array(); var $itemqtys = array(); var $iteminfo = array();
function cart() {} // constructor function
function get_contents() { // gets cart contents $items = array(); $i=1; foreach($this->items as $tmp_item){ $item = FALSE; echo "執行第 ".$i." 次<br />"; echo "\$tmp_item的值為:".$tmp_item."<br />"; $item['id'] = $tmp_item; echo '$item[\'id\']:'.$item['id']."<br />"; $item['qty'] = $this->itemqtys[$tmp_item]; echo "\$item['qty']:\$this->itemqtys[$tmp_item]<br />"; $item['price'] = $this->itemprices[$tmp_item]; echo "\$item['price']:\$this->itemprices[$tmp_item]<br />"; $item['info'] = $this->iteminfo[$tmp_item]; echo "\$item['info']:\$this->iteminfo[$tmp_item]<br />"; $item['subtotal'] = $item['qty'] * $item['price']; echo "\$item['subtotal']:".$item['qty']."*". $item['price']."<br />"; echo "<hr />"; $i++; $items[] = $item; } return $items; } // end of get_contents }
$cart=new wfCart; $cart->get_contents(); ?> |
|
|
|
文淵閣工作室
更新時間:2013/3/15 下午 02:34:02 |
|
1.是,其實這就是多維陣列. 2.是的.但是請記得$items本身也是陣列,裡面每一個元素就是一筆資料. 3.你的使用類別方式有點問題,class的內容是為了要產生物件,所以我們在包含進來之後,必須用 new 的方式來新增物件。以這個範例來說, 我們就是用 $cart=new wfCart; 用wfCart類別來新增一個$cart物件, 物件產生了,就可以利用其中的方法來進行購物車的動作. |
|
|
|
Carter
更新時間:2013/7/10 下午 03:59:28 |
|
請問範例中 function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE) { // adds an item to cart if(!$price) { $price = wf_get_price($itemid,$qty); }
if(!$info) { $info = wf_get_info($itemid); }
if($this->itemqtys[$itemid] > 0) { // the item is already in the cart.. // so we'll just increase the quantity $this->itemqtys[$itemid] = $qty + $this->itemqtys[$itemid]; $this->_update_total(); } else { $this->items[]=$itemid; $this->itemqtys[$itemid] = $qty; $this->itemprices[$itemid] = $price; $this->iteminfo[$itemid] = $info; } $this->_update_total(); } // end of add_item
第一個參數 $itemid是否被限縮只能數字了
因為在function中用來指定陣列的值
但如果本身產品ID不是數字,就失效了 |
|
|
|
|
|
|