0

以下のコードを見てください

<?php
echo "$_SERVER[HTTP_HOST] <br />";
echo $_SERVER['HTTP_HOST'], "\n\n";
?>

両方のechoステートメントは、同じ手法を使用してスーパーグローバル配列$ _SERVERからHTTP_HOSTインデックスの値を返しますか?私の質問は、構文の違いの原因は何ですか?次の違いに気づきました。

  1. 最初のechoステートメントのHTTP_HOSTは一重引用符で囲まれていません。これは、2番目のechoステートメントで使用した構文とは逆です。最初のechoステートメントでHTTP_HOSTを一重引用符で囲むと、次のエラーが発生します

解析エラー:構文エラー、予期しない''(T_ENCAPSED_AND_WHITESPACE)、2行目のC:\ xampp \ htdocs \ php-blog \ simple-blog \ server.phpに識別子(T_STRING)または変数(T_VARIABLE)または番号(T_NUM_STRING)が必要です

  1. 2番目のechoステートメントで['HTTP_HOST']の後にコンマが必要なのに、最初のechoステートメントではコンマが必要ないのはなぜですか。このコンマを破棄すると、次のエラーが発生します。

解析エラー:構文エラー、予期しない'"\ n \ n"'(T_CONSTANT_ENCAPSED_STRING)、'、'、または';'が必要です 3行目のC:\ xampp \ htdocs \ php-blog \ simple-blog\server.phpにあります

私はプログラミングに不慣れです。ガイダンスが必要です。助けてください。ありがとうございました!

4

2 に答える 2

4

最初のステートメントは、引数を1つだけ使用してechoを呼び出します。引数は変数を含む文字列です。これを行うときは、角かっこを使用して、変数が開始されたことをphpが確実に理解できるようにする必要があります。

 echo "{$_SERVER['HTTP_HOST']} <br>";

文字列をドットで連結することもできます。

 echo $_SERVER['HTTP_HOST'] . "<br>";

カンマは、一度に複数のエコーを書き込むためのもう1つの方法です。

echo 1, 2;

と同じです

echo 1;
echo 2;

http://php.net/manual/en/function.echo.php

于 2012-08-11T12:09:44.787 に答える
0

php構文では、二重引用符で囲まれた変数を参照できます。
例えば:

$x = "hello";
echo "$x world";

と類似しています:

echo $x . " world";

また

echo $x , " world";

そして、すべてが出力されますhello world

一重引用符で囲まれた変数の参照は許可されていないため、
echo '$x world';
無効であることに注意してください。

于 2012-08-11T12:11:52.883 に答える