New Ribbon
用Canva設計超快超質感(第2版):商業設計、簡報、影片、網頁、電子書與AI應用最速技 AI繪圖工具 × AI視覺設計平台,從圖像生成到專業設計! 最強職場助攻!ChatGPT + AI 高效工作術 短影音制霸:打造TikTok、YT Shorts、IG Reels成功方程式與AI高效創作力 Canva+AI創意設計與品牌應用250招:從商業技巧、社群祕技到AI圖文影音特效 快快樂樂學威力導演2024.影音剪輯與AI精彩創作 Power Automate自動化超效率工作術 Midjourney AI圖像魔導書:搭配ChatGPT魔法加倍 超人氣FB+IG+LINE社群經營與行銷力(第二版) 翻倍效率工作術:不會就太可惜的 Excel × ChatGPT 自動化應用 AppInventor2零基礎入門班中文版(第六版) Python零基礎入門班(第四版) C語言學習聖經 用Canva設計超快超質感:平面、網頁、電子書、簡報、影片製作與AI繪圖最速技 PHP8/MySQL網頁程式設計自學聖經 翻倍效率工作術 - 不會就太可惜的Power BI大數據視覺圖表設計與分析(第三版) 社群經營一定要會的影音剪輯與動畫製作術 Notion高效管理250招:筆記×資料庫×團隊協作,數位生活與工作最佳幫手 Office 2021高效實用範例必修16課(附500分鐘影音教學/範例檔) Excel自學聖經(第二版):從完整入門到職場活用的技巧與實例大全

 

  挑戰php5

piggy

piggy
更新時間:2009/9/3 上午 05:08:55

 

挑戰php5

1.
可否講解一下書本18-31頁第13-14行與18-34頁110-111行
$i=count($_POST["updateid"]);
for($j=0;$j<$i;$j++){
    $cart->edit_item($_POST['updateid'][$j],$_POST['qty'][$j]);
}
不太了解for部份
---------------------------
2.
function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE)
{
        if(!$price)
{
    $price = wf_get_price($itemid,$qty);
}

        if(!$info)
{
            $info = wf_get_info($itemid);
}

if($this->itemqtys[$itemid] > 0)
        {
$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();
}
若購物車中沒有商品add_item()就新增商品到購物車中
$this->items[]=$itemid;
$this->itemqtys[$itemid] = $qty;
$this->itemprices[$itemid] = $price;
$this->iteminfo[$itemid] = $info;
將$itemid商品編號存到items屬性裡面
並且讓$itemid商品編號成為數量.價格.商品名稱的陣列索引
例如加入商品資訊後:
$items = array(18,4,3);
$iteminfo = array ("SONY VGN-FE25TP", "ASUS S6F", ASUS W7J )
執行print_r($cart->iteminfo);可以得到
Array ( [18] => SONY VGN-FE25TP [4] => ASUS S6F [3] => ASUS W7J )
商品編號成為了商品名稱的陣列索引
但是為什麼我想將add_item()的方式拿出來練習看看卻無法成功
$itemid = array(11,2);
$info = array("A","B");
$items=$itemid;
$iteminfo[$itemid] = $info;
print_r($iteminfo);

請問要如何修改才能讓A陣列的值 成為B陣列的索引值??
---------------------------
3.
若我希望將第十五章留言版的功能加在product.php頁面裡面的連結
製作一個"問與答"的功能 但唯一不一樣的是
1.我希望管理者能針對會員 每一問題個別回答 而且能新增新的回應 但同時保留舊的回應
2.當管理者新增新的回應時應該同時增加資料庫裡面的欄位該如何製作規劃呢?
謝謝回答
---------------------------
4.
我後來還是用函式的方式製做出讓A陣列的值 成為B陣列的索引值
例如:
$items = array();
$iteminfo = array();
function add_item($itemid, $info)
{  
    global $items;
    global $iteminfo;
    $items[]=$itemid;
    $iteminfo[$itemid] = $info;
}
add_item(33, "A");
add_item(66, "B");
print_r($items);
print_r($iteminfo);
請問
1.是否沒辦法在不使用物件跟函式的狀況下讓A陣列的值 成為B陣列的索引值
2.為什麼在函式外使用
$items = array();
$iteminfo[$items] = array();
$items[] = 2;
$iteminfo[] = "A";
$iteminfo[] = "B";
$iteminfo[$items] = array();這一行會出現錯誤呢?
而物件跟函式雖然也有 $iteminfo[$itemid] = $info;但卻不會有錯誤顯示
3.後來又想到
物件的方法裡面
是否沒有區域變數的問題
是因為在同一個類別裡面
所以方法裡面的屬性都看做全域變數嗎?所以不用宣告global還是有其它解釋呢?
---------------------------
5.
取出資料庫裡的資料
<?php while($row_RecCategory=mysql_fetch_assoc($RecCategory)){
只能用while讀出嗎?可不可以使用foreach呢?
---------------------------
6.
書本第18-33頁第18-34頁第104-116行
為什麼要將它寫成顯示範圍呢?
<?php foreach($cart->get_contents() as $item) { ?>              
................................
................................    
<?php }?>
直接這樣不行嗎?
<?php
foreach($cart->get_contents() as $item) {        
................................
................................    
?>

文淵閣工作室

文淵閣工作室
更新時間:2009/9/4 上午 10:15:05

 

1.
在購物車的重複區域中有放置隱藏欄位來記錄這些商品的ID值,送到這段程式時,就是先計算ID值的個數,即表示目前購物車的商品個數,然後再利用for()迴圈一一執行更新的動作,也就是商品的數量變更。
-----------------------
2.及4.
1.以目前您的需求來看,使用函式似乎是最好的方法。
2.
$items = array();
$iteminfo[$items] = array();
這是不是有個怪怪的地方,
陣列在宣告時,
陣列元素所代入的索引值必須是整數或是文字,而不是另一個陣列。
若您要的是一個二維陣列,其格式應是:$陣列變數[索引值][索引值]。
關於全域變數的問題,因為這個購物車物件內的參數是用傳址呼叫的方式來宣告,所以在物件或函式內的屬性及變數都是同步的。若是一般傳值呼叫就有全域變數的問題。
3.問與答,要規劃問答的資料表中要有一欄是記錄該問答是屬與哪個產品,做為關聯。
5.可以,在14.5的範例大多是如此。
6.寫成
<?php foreach($cart->get_contents() as $item) { ?>              
................................
................................    
<?php }?>
的原因是在迴圈內的內容,不是單純的程式碼,而是交雜著HTML碼與PHP程式碼。若您要寫成:
<?php
foreach($cart->get_contents() as $item) {        
................................
................................  
}  
?>
那在迴圈內的HTML必須要先代入字串變數,與PHP碼的結果合併後再echo出來,較為複雜。




 

 

Re:挑戰php5

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。