>  기사  >  백엔드 개발  >  自学PHP新手报到。有几个关于数组的疑问,希望大神们能指点一二

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

WBOY
WBOY원래의
2016-06-23 13:30:33742검색

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

第二个是:$_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] );

嗯嗯,最近代码打多了就理解了。。
谢谢你~~
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.