FROG-BOX
@FROG-BOX

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHPの初心者ですが困っています。お願いします。

Q&A

Closed

プログラミングを初めて一週間とかの超初心者です。
以下の理解ができない状態です。簡単に教えてくれると助かります。
よろしくお願いします。

print '<input type="hidden" name="name" value="'.$staff_name.'">';

という行があります。その中の

value="'.$staff_name.'"

が理解できなくて困っています。具体的には

①なぜ変数がシングルクォートで両端を挟まれているのか? がわからないです。

②同じように、なぜドットで両端を挟まれているのか? もわかりません。

※結合演算子?で文字や変数を結合できるというのは調べました。ですが、なぜ両端にドットが必要なのかわからないです。通常は1個じゃないのでしょうか?

'りんご'.'1個' で りんご1個 になるみたいに

=============

以下が該当行の周辺です。

else
{
$staff_pass=md5($staff_pass);
print '<form method="post" action="staff_add_done.php">';
print '<input type="hidden" name="name" value="'.$staff_name.'">';
print '<input type="hidden" name="pass" value="'.$staff_pass.'">';
print '<br />';
print '<input type="button" onclick="history.back()" value="戻る">';
print '<input type="submit" value="OK">';
print '</form>';
}

お詳しい方、ご教授ください。よろしくお願いします。

0

2Answer

①なぜ変数がシングルクォートで両端を挟まれているのか? がわからないです。

文字列と共に変数を参照する際は、基本的にはPHPでは結合演算子(.)を文字列と変数の間に挟むか、文字列のなかで変数のパースをするかのいずれかです。
ここでは「変数がシングルクォートで両端を挟まれている」わけでは無く、正しくは、シングルクォートは前後の文字列にかかっています。

例:

'<input type="hidden" name="name" value="'.$staff_name.'">'

シンタックスハイライトしてみると分かりやすいですが、次のようなパーツとして解釈されます。

文字列

'<input type="hidden" name="name" value="'

結合演算子

.

変数

$staff_name

結合演算子

.

文字列

'">'

つまり、この例では、文字列、結合演算子、変数、結合演算子、文字列、と並んでおり、それぞれのシングルクォートは文字列の始端/終端を意味しています。

2Like

Comments

  1. @FROG-BOX

    Questioner

    ご丁寧にご回答ありがとうございます。今から仕事で外出しなければならないので帰り次第じっくり読まさせていただきます。ありがとうございました。
  2. @FROG-BOX

    Questioner

    ありがとうございました。いただいた回答を読んでもすぐに理解できなくて更に調べたりして理解できました。何とも単純な話だったんですね。囲ってる部分が違うとは盲点でした。今度はなぜ pirnt が冒頭に必要なのかという疑問が湧きましたが。調べてみます。

Your answer might help someone💌