自学PHP新手报到。有几个关于数组的疑问,希望大神们能指点一二

WBOY
Freigeben: 2016-06-23 13:30:33
Original
744 Leute haben es durchsucht

<html><body><form method="post"><table  border="1"><tr><td width="200">学号</td><td width="200">姓名</td><td width="200">成绩</td></tr><?php for ($i = 0; $i < 5; $i++) {	echo "<tr>";	echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";	echo "<td width='200'><input type='text' name='xm[]' style='width:200px' value='".$_POST['xm'][$i]."'></td>";	echo "<td width='200'><input type='text' name='cj[]' style='width:200px' value='".$_POST['cj'][$i]."'></td>";	echo "</tr>";}?><tr><td colspan="3" align="center"><input type="submit" name="submit1" value="提交"></td></tr></table></form><?php if (isset($_POST["submit1"])) {	$XH = $_POST["xh"];	$XM = $_POST["xm"];	$CJ = $_POST["cj"];}?></body></html>
Nach dem Login kopieren


“.$_POST['xh'][$i].”这一句是什么意思?为什么要加上“["xh"]”?前后分别两个 "."又是什么意思?
为什么提交后,$XH会得到一个数组?创建数组不是要用到array()函数吗?


回复讨论(解决方案)

. 是字符串连接运算

为什么html数组要用类似name='xh[]'是php的约定
参考
http://php.net/manual/zh/faq.html.php#faq.html.arrays

实际上浏览器POST过去的数据是这样的(位于http头下方)

xh[]=第一个值&xh[]=第二个值

到服务端php会解析为
$_POST['xh']=array(
0 => '第一个值',
1 => '第二个值'
)

所以要$_POST[‘xh’][0]会获取'第一个值'

通常情况下(没用用表单数组)
浏览器端的


POST到服务器端php会解析为
$_POST['xh']=0;

这里的.没有作用的,如一楼,是连接字符串的操作符。“a”.“b”=“ab”

. 是字符串连接运算


不是很懂。。。如果是引用不是在变量前加一个.就可以了吗?为什么这里要在前后加一个.;如果把后面那个.去掉就会报错。。

    echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
Nach dem Login kopieren
Nach dem Login kopieren


echo 后边是三个字符串相连接(下边红色的是双引号)
第一个是: " 第三个是: "'> "

实在不习惯这样拼接字符串就用类似C语言的printf或者sprintf函数
printf("<td width='200'><input type='text' name='xh[]' style='width:200px' value='%s'></td>", $_POST['xh'][$i] );
Nach dem Login kopieren
Nach dem Login kopieren

    echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
Nach dem Login kopieren
Nach dem Login kopieren


echo 后边是三个字符串相连接(下边红色的是双引号)
第一个是: " 第三个是: "'> "

实在不习惯这样拼接字符串就用类似C语言的printf或者sprintf函数
printf("<td width='200'><input type='text' name='xh[]' style='width:200px' value='%s'></td>", $_POST['xh'][$i] );
Nach dem Login kopieren
Nach dem Login kopieren


嗯嗯,最近代码打多了就理解了。。
谢谢你~~
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage