独学でPHP初心者登録。配列についていくつか質問がありますので、専門家からアドバイスをいただければ幸いです。

WBOY
リリース: 2016-06-23 13:30:33
オリジナル
744 人が閲覧しました

<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 []=2 番目の値服务
サーバーへの PHP の解析は
$ _post ['xh'] = Array (
0 = & gt; '最初の値',
1 = & gt; $_POST[' xh'][0] は「最初の値」を取得します


通常(フォーム配列は使用しません)

ブラウザ側


サーバー側 php への POST は
$_POST['xh']=0; として解析されます



ここで影響を及ぼさないのは、文字列を接続するための演算子です。 "a"."b"="ab"

. 文字列の連結演算です

よく分かりません。 。 。参照の場合は変数の前に1つだけ付ければ良いのでしょうか?なぜここの前後に . を追加する必要があるのでしょうか? 後ろの . を削除するとエラーが報告されます。 。


    echo "<td width='200'><input type='text' name='xh[]' style='width:200px' value='".$_POST['xh'][$i]."'></td>";
ログイン後にコピー
ログイン後にコピー

エコーの後には 3 つの文字列が接続されています (下の赤い文字列は二重引用符です)
最初の文字列は次のとおりです: " 3 つ目は: "'> "

Ifこのように文字列を結合することに本当に慣れていない場合は、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 の後に 3 つの文字列が続きます (下の赤い文字列は二重引用符です)
最初の文字列は: " 3 つ目は: "'> "

このように文字列を結合することにあまり慣れていないので、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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート