看板 PHP 關於我們 聯絡資訊
※ 引述《aatty (山下同)》之銘言: : 小弟初學乍練 最近在學習購物車的程式,煩請各位不吝指教 : 是這樣的,這是一個將指定的產品 放入購物車(寫入cookie)的php : <?php : //取得表單資料(選購了一本書,為方便起見只讀入書號) : $book_no=$_GET["book_no"] : if(empty($_COOKIE["book_no_list"])) //若購物車為空就直接加入產品資料 : { : setcookie("book_no_list",$book_no); : } : else //取得購物車資料 : { : $book_no_array=explode(",",$COOKIE["book_no_list"]); : } : $book_no_array[] = $book_no; //將物品加入購物車 : setcookie("book_no_list",implode(",",$book_no_array)); : ?> : 小弟想問的是1.一開始的if敘述裡面就用了$_COOKIE的函式,可是一開始並 : 沒有設定book_no_list這個cookie阿 那$_COOKIE要去哪裡找值?@@ 問題1 這個問題跟購物車其實沒甚麼很大的關係,應該是PHP的概念 在PHP中,如果要取得某個陣列中索引的值,而這個值本身不存在時 自動就是回傳回空的值 (實際是 NULL) 而你那段 empty ($_COOKIE["book_no_list"]) 就是為了判斷這個cookie索引是否有值 另外如果 PHP 的警告有開啟 NOTICE 的訊息就會出現 Notice: Undefined index: [key] in [file] on line [lno] : 2.explode這個函式等號左邊宣告的一開始就是陣列嗎? : 我真的很新手 問的可能很笨很基本 但還是希望這個版有人能指導我>< : 感激 第二個問題我建議你先看PHP的網站手冊後,真的不懂再問 http://php.net/manual/en/function.explode.php -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.186.193
aatty:謝謝您 我了解您說的陣列中沒有值得話會傳回null 那如果 03/23 19:36
aatty:我要從book_no_list裡面抓值 但是book_no_list還沒有set 03/23 19:39
aatty:也是傳回NULL嗎? 03/23 19:39
kerash:"這個值本身不存在時" = "還沒set" 03/23 20:01
kerash:兩者的意思是一樣的 03/23 20:01
aatty:了解了 非常感謝你 03/23 20:16
kerash:不會~ 03/23 20:16
aatty:那$book_no_array=explode(",",$COOKIE["book_no_list"]); 03/23 20:17
aatty:=等號左邊可以寫成$book_no_array[]嗎?@@ 03/23 20:18
kerash:不能說不行,但是你要了解這樣設定變數會變成甚麼結果 03/23 20:19
aatty:意思不一樣嗎?QQ 我有點混亂了 03/23 20:23
aatty:兩個不都是陣列嗎? 03/23 20:32
MOONRAKER:意思不一樣。你也知道自己是新手,那就先背起來。 03/23 20:35
aatty:好的... 03/23 20:45
kerash:我在消耗版面一下回一篇好了XD 03/23 22:06