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

php中文网
发布: 2016-06-23 13:30:33
原创
953人浏览过

<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()函数吗?

有道小P
有道小P

有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。

有道小P 64
查看详情 有道小P

回复讨论(解决方案)

. 是字符串连接运算

为什么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 后边是三个字符串相连接(下边红色的是双引号)
第一个是: "

第二个是:$_POST['xh'][$i]
第三个是: "'> "

实在不习惯这样拼接字符串就用类似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 后边是三个字符串相连接(下边红色的是双引号)
第一个是: "

第二个是:$_POST['xh'][$i]
第三个是: "'> "

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

嗯嗯,最近代码打多了就理解了。。
谢谢你~~
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号