看看下面的代码
<?php
echo "$_SERVER[HTTP_HOST] <br />";
echo $_SERVER['HTTP_HOST'], "'n'n";
?>
两个 echo 语句都使用相同的技术从超全局数组 $_SERVER 返回HTTP_HOST索引的值?我的问题是是什么导致了语法的差异?我注意到以下差异:
- HTTP_HOST第一个 echo 语句中的 没有用单引号括起来,这与我在第二个 echo 语句中使用的语法相反。如果我将HTTP_HOST括在第一个 echo 语句的单引号中,我会收到以下错误
解析错误:语法错误、意外的 '' (T_ENCAPSED_AND_WHITESPACE)、第 2 行的 C:''xampp''htdocs''php-blog''simple-blog''server.php 中的标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING
)
- 为什么在第二个回显语句的 ['HTTP_HOST'] 后面需要逗号,而在第一个回显语句中不需要逗号?如果我丢弃这个逗号,我会收到以下错误。
解析错误:语法错误,意外的"''"(T_CONSTANT_ENCAPSED_STRING),在第 3 行的 C:''xampp''htdocs''php-blog''simple-blog''server.php 中预期","或";"
我是编程新手,需要指导,请帮忙。谢谢!
您的第一个语句调用只有一个参数的 echo。参数是一个包含变量的字符串。执行此操作时,您应该使用括号来确保 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
PHP 语法允许引用双引号内的变量。
例如:
$x = "hello";
echo "$x world";
类似于:
echo $x . " world";
或
echo $x , " world";
并且所有人都将输出hello world
.
请注意,不允许引用单引号内的变量,因此echo '$x world';
无效。