Я получаю ошибку, запустив следующий код:
<?php
//superglobal.php
foreach($_SERVER as $var=>$value)
{
echo $var=>$value.'<br />'; //this will result in to following error:
//Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ',' or ';' in
//C:\xampp\htdocs\w_j_gilmore\CH_03_PHP_BASICS\superglobal.php on line 6
}
?>
И следующий код работает успешно
<?php
//superglobal.php
foreach($_SERVER as $var=>$value)
{
echo "$var=>$value<br />";
}
?>
Печать в одинарных и двойных кавычках — это разница.
ЗАЧЕМ?
Разница между двумя заключается в том, что в первом вы пытаетесь использовать =>
оператор (который недопустим в этом месте, поэтому приведет к синтаксической ошибке), в то время как во втором вы печатаете строку, в которой есть символы =
а также >
в этом.
Второе эффективно может быть переписано как:
<?php
//superglobal.php
foreach($_SERVER as $var=>$value)
{
echo $var . "=>" . $value . "<br />";
}
?>
Если вы просто пытаетесь вывести $_SERVER
по причинам отладки я предлагаю использовать var_dump
или же print_r
var_dump($_SERVER);
Вы не указали строку:
echo $var=>$value.'<br />';
цитата будет выглядеть так:
echo '$var => $value <br />';
если одинарные кавычки, переменные не интерпретируются.