Переменные — Почему различия в выводе с использованием SUPERGLOBAL в PHP?

Я получаю ошибку, запустив следующий код:

<?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 />";
}
?>

Печать в одинарных и двойных кавычках — это разница.
ЗАЧЕМ?

-5

Решение

Разница между двумя заключается в том, что в первом вы пытаетесь использовать => оператор (который недопустим в этом месте, поэтому приведет к синтаксической ошибке), в то время как во втором вы печатаете строку, в которой есть символы = а также > в этом.

Второе эффективно может быть переписано как:

<?php
//superglobal.php

foreach($_SERVER as $var=>$value)
{
echo $var . "=>" . $value . "<br />";
}
?>

Если вы просто пытаетесь вывести $_SERVER по причинам отладки я предлагаю использовать var_dump или же print_r

var_dump($_SERVER);
2

Другие решения

Вы не указали строку:

echo $var=>$value.'<br />';

цитата будет выглядеть так:

echo '$var => $value <br />';

если одинарные кавычки, переменные не интерпретируются.

1

По вопросам рекламы [email protected]