首页 > 后端开发 > php教程 > 自学PHP新手报到。有几个关于数组的疑问,希望大神们能指点一二

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

WBOY
发布: 2016-06-23 13:30:33
原创
768 人浏览过

<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>
登录后复制


“.$_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>";
登录后复制
登录后复制


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

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

    echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
登录后复制
登录后复制


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

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


嗯嗯,最近代码打多了就理解了。。
谢谢你~~
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板