Синтаксис Php и объяснение программного грамматика

У меня есть кусок кода, который нужно было напрямую перевести с php на vb.net/c#. Я хотел бы спросить, что означают эти следующие выражения в простых английских терминах? Может быть, немного (или больше) разработки будет хорошо. Вот оно.

1.    foreach ($_SESSION[''] as $variable1 => $variable2) {}
2.    $variable .= <<<EOD{ "a":"1", "b":"2","c":"3" },EOD

Я хотел бы понять, что они имели в виду. И, возможно, небольшой совет о том, как применять его в asp.net. Большое спасибо заранее!

1

Решение

для каждого()

foreach() проходит по массиву и присваивает последовательные элементы указанной переменной. Например, ваш пример, переменная $_SESSION перебирается, причем индекс (часть в скобках) присваивается $variable1 и значение присваивается $variable2, Если ваш массив выглядел так:

$_SESSION = array(
'red'  => 'first element',
'blue' => 'second element'
);

Тогда ваш foreach() будет зацикливаться дважды. Первый раз, $variable1 будет равно «красный» и $variable2 будет равна «первый элемент». Второй раз, $variable1 будет равно «синий» и $variable2 будет равно «второй элемент».

Heredoc

Для второй части есть несколько вещей, которые требуют объяснения. Первый, .= это конкатенация. Так:

$variable .= 'value';

такой же как:

$variable = $variable . 'value';

Далее у нас есть нечто, называемое HEREDOC. Это способ присвоения строкового значения переменной путем его инкапсуляции между двумя произвольными строками. Так:

$variable .= <<<EOD
{ "a":"1", "b":"2","c":"3" },
EOD;

такой же как:

$variable .= '{ "a":"1", "b":"2","c":"3" },'

В приведенном вами примере нет смысла использовать формат HEREDOC, потому что все легко помещается в одну строку. Но представьте что-то вроде этого:

$variable = <<<TEXT
Some line of text with a " mark.
Another line of text with a ' mark.
TEXT;

Это может быть легче читать и поддерживать, чем следующее:

$variable = "Some line of text with a \" mark.\nAnother line of text with a ' mark.";

В HEREDOC строка заканчивается, когда выбранный разделитель начинается с новой строки, начиная с крайнего левого.

1

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

Простое объяснение

  • Foreach — цикл для простой итерации массивов работает от первого элемента массива до последнего элемента массива. проверить ссылку foreach от Вот это очень обширно

  • $_SESSION[''] является суперглобальной переменной в php, область которой доступна в бесконечных разделах кода. сеанс сохраняет данные в виде массива, поэтому цикл будет работать для каждого массив сессий переменная.

  • $variable это созданная вами локальная переменная, которая может быть либо строковой, либо целочисленной, приведение типов происходит автоматически в php.

  • .= это конкатенация строк, которая добавляет новое содержимое к существующему содержимому строки. пример:

    $string = "first_Name ";
    $string .= "Last_Name";
    
    echo $string; // output - first_Name  Last_Name
    
  • <<<EOD — Есть четыре типа строк, доступных в php. Они одинарные кавычки ('), двойные кавычки (") а также Nowdoc (<<<'EOD') а также heredoc(<<<EOD) строки. посмотри об этом Вот

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector