2015-08-14 47 views
-2

我有一段PHP代碼,它可以工作,但我很想知道爲什麼。PHP理解用於提取複選框值的小代碼段

​​

那麼這裏就是我沒有得到低於這個PHP代碼,如何爲$顏色數組,我想你必須至少有$顏色[] = $ _ POST [「顏色」。

if (isset($_POST['color'])) { 
    $colors = $_POST['color']; 
} 
echo $colors[0]; 

感謝您幫助我更好地理解這一點。

+0

http://www.php.net/manual/en/faq.html .php#faq.html.arrays – Script47

回答

1

您不需要在PHP中明確添加[]。注意你甚至不需要定義類型!這是PHP :)

$_POST['color']是一個數組,所以$colors也會!

閱讀:http://www.html-form-guide.com/php-form/php-form-checkbox.html

編輯

在PHP中,如果你寫$colors[] = $var,你實際上是添加$var到數組的末尾。如果數組爲空,則爲$colors[0] == $var

$colors = $_POST['color']; // $colors receives the array 
$colors[] = $_POST['color']; // $colors[0] receives the array, if $colors was empty 

更多信息:http://php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying

+1

AFAIK,你必須指定'[]'作爲一個數組。 – Script47

+0

PHP不需要(http://php.net/manual/en/language.types.array.php)。但是,在HTML中,'name =「var []'是必需的,因此這些元素可以被識別爲一個數組。 – Berriel

+0

我正在討論'HTML'。 – Script47

1

在HTML中,用[]在其名稱中的每一個元素是要去被視爲一個陣列。

有用樣病例:

Choose your interests<br/> 
<input type='checkbox' name='interests[]' value='Fashion'> Fashion 
<input type='checkbox' name='interests[]' value='Cars'> Cars 
<input type='checkbox' name='interests[]' value='Health'> Health 
<input type='checkbox' name='interests[]' value='Programming'> Programming 

現在,您將存取權限它們作爲PHP中的數組:

$_POST['interests'][0] //-> Fashion