2012-08-11 100 views
0

看看下面是什麼導致這種語法差異?

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

回波語句的兩個代碼從使用相同的技術超全局數組$ _SERVER返回HTTP_HOST指數的值?我的問題是什麼導致了語法的區別?我注意到以下區別:

  1. 第一個echo語句中的HTTP_HOST沒有用單引號括起來,這與我在第二個echo語句中使用的語法相反。我碰到下面的錯誤,如果我包住HTTP_HOST在單引號的第一回聲聲明

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\php-blog\simple-blog\server.php on line 2

  1. 爲什麼而在不需要它後[「HTTP_HOST」]需要一個逗號在第二回聲聲明第一個回聲陳述?如果我放棄這個逗號,我會得到以下錯誤。

Parse error: syntax error, unexpected '"\n\n"' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\xampp\htdocs\php-blog\simple-blog\server.php on line 3

我是新來編程,需要引導,幫助請。 謝謝!

回答

4

你的第一條語句只回應一個參數。 參數是一個包含變量的字符串。 做這件事時,你應該使用括號,以確保PHP懂得了你的變量開始:

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

你也可以串聯以點串:

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

逗號只是另一種方式寫一些回聲一次:

echo 1, 2; 

相同

echo 1; 
echo 2; 

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

0

PHP語法允許指雙引號內的變量。
例如:

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

是類似於:

echo $x . " world"; 

echo $x , " world"; 

和所有將輸出hello world。這指的是單引號內的變量

通知是不允許的,因爲這個原因
echo '$x world';
是無效的。