看板 PHP 關於我們 聯絡資訊
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
這應該是你對變數觀念的問題 先知道等號左邊與等號右邊各代表的意義 左邊可以當成是一個「容器(變數)」,右邊則是要放入的東西 等號的意思就是把右邊的內容方進左邊的容器裡 那php的變數,在未指定時通常都很彈性 $a = 1; // 這時 $a 屬性是數字 $a = "1"; // $a 屬性是字串 $a = array('a','b'); // $a 屬性是陣列 因此可以知道負責當容器的變數是很有彈性的, 他會改變自己的屬性變成你給他的樣子 接著看右邊的部分, 以你的 explode 來看,是 Returns an array of strings, ... 也就是說,你是要將一個陣列丟入你所指定的容器裡面 既然 $a 的型態會自動改變的, 那當你要將陣列丟進去後,左邊的 $a 自然會自己轉型 而不用你自己去把 $a 當成陣列 但是你這樣的寫法也不會有錯,因為 $a 很彈性的原因 因此當你使用 $a[] 時, $a 被自動轉換成陣列並分配區域給你存放右邊的東西 以結果來看他沒有錯,只是不是你的需求 直接說兩者的結果差別如下 $a = explode(",","a,b"); => $a = array ( 'a' , 'b' ); $a[] = explode(",","a,b"); => $a = array ( array ( 'a' , 'b' ) ); 以上 說得太多太複雜了~"~ 如果有錯請各位大大幫忙勘正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.186.193
aatty:恍然大悟 謝謝你>_< 03/23 23:33