У меня есть кусок кода, который нужно было напрямую перевести с php на vb.net/c#. Я хотел бы спросить, что означают эти следующие выражения в простых английских терминах? Может быть, немного (или больше) разработки будет хорошо. Вот оно.
1. foreach ($_SESSION[''] as $variable1 => $variable2) {}
2. $variable .= <<<EOD{ "a":"1", "b":"2","c":"3" },EOD
Я хотел бы понять, что они имели в виду. И, возможно, небольшой совет о том, как применять его в asp.net. Большое спасибо заранее!
foreach()
проходит по массиву и присваивает последовательные элементы указанной переменной. Например, ваш пример, переменная $_SESSION
перебирается, причем индекс (часть в скобках) присваивается $variable1
и значение присваивается $variable2
, Если ваш массив выглядел так:
$_SESSION = array(
'red' => 'first element',
'blue' => 'second element'
);
Тогда ваш foreach()
будет зацикливаться дважды. Первый раз, $variable1
будет равно «красный» и $variable2
будет равна «первый элемент». Второй раз, $variable1
будет равно «синий» и $variable2
будет равно «второй элемент».
Для второй части есть несколько вещей, которые требуют объяснения. Первый, .=
это конкатенация. Так:
$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 строка заканчивается, когда выбранный разделитель начинается с новой строки, начиная с крайнего левого.
Простое объяснение
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)
строки. посмотри об этом Вот