因此,当我将填充的数组传递给函数createform时,表单是使用$ max_avatars选项创建的,但它们没有名称或值。为什么我的数组变为空?
<?php
$avatar_image_name = array('hacker','samurai','cool','happy','thatsnice','angry','tv','bang');
$avatar_name = array('Hacker','Samurai','Cool','Happy','That\'s nice','Angry','TV','Bang');
$max_avatars = 6;
createform($max_avatars, $avatar_image_name, $avatar_name);
?>
函数createform:
function createform($max_avatars, $avatar_image_name, $avatar_name)
{
$string ='<table id="formtable">
<tr><td class="formtext">Name:</td><td><input type="text" name=name size=25 /></td></tr>
<tr><td class="formtext">Trip:</td><td><input type="text" name=trip size=25 /> (<font style="color: #ff0000">Don\'t use your password</font>)</td></tr>
<tr><td class="formtext">Comment</td><td><textarea name=post rows="4" cols="50"></textarea></td></tr>
<tr><td class="formtext">Avatar:</td>
<td>
<select name=avatar>';
for($i = 0; $i < $max_avatars; $i++){
$string = ($string . '<option value="'.$avatar_image_name[i].'">'.$avatar_name[i].'</option>');
}
$string = ($string . '</select>
</td>
<tr><td class="formtext">Extra</td><td>Fortune: <input type="radio" name="extra" value="fortune" /> Poker: <input type="radio" name="extra" value="poker" /></td></tr>
</table>
<input type=submit value="Submit" id="submitbutton">');
echo $string;
}
答案 0 :(得分:7)
您需要$avatar_image_name[$i]
,而不是$avatar_image_name[i]
。您需要前面的$
。否则,PHP假定您的意思是"i"
,并且$avatar_image_name["i"]
不存在,因此它将其替换为null。您应该在 php.ini 配置文件中打开display_errors
- 如果您这样做,PHP会警告您这些内容。
答案 1 :(得分:3)
它是$ i,而不是我:)
for($i = 0; $i < $max_avatars; $i++){
$string = ($string . '<option value="'.$avatar_image_name[$i].'">'.$avatar_name[$i].'</option>');
}
答案 2 :(得分:2)
您的for循环计数器名为$i
,但您正在使用i
索引循环内的数组。