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

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

WBOY
Release: 2016-06-23 13:30:33
Original
770 people have browsed it

<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>
Copy after login


“.$_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>";
Copy after login
Copy after login


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

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

    echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
Copy after login
Copy after login


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

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


嗯嗯,最近代码打多了就理解了。。
谢谢你~~
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template