我有一段代码需要直接从PHP翻译成vb.net/C#。我想问一下,这些下一个表达用简单的英语术语表示什么?也许一点点(或更多)的阐述会很好。到此为止。
1. foreach ($_SESSION[''] as $variable1 => $variable2) {}
2. $variable .= <<<EOD{ "a":"1", "b":"2","c":"3" },EOD
我想了解他们的意思。关于如何在asp.net中应用它,可能还有一些建议。
答案 0 :(得分:1)
foreach()
循环遍历数组并将连续元素分配给指定的变量。例如,您的示例,变量$_SESSION
循环,索引(括号中的部分)分配给$variable1
,值分配给$variable2
。如果您的阵列看起来像这样:
$_SESSION = array(
'red' => 'first element',
'blue' => 'second element'
);
然后你的foreach()
会循环两次。第一次,$variable1
等于&#34;红色&#34;和$variable2
等于&#34;第一个元素&#34;。第二次,$variable1
等于&#34;蓝色&#34;并且$variable2
等于&#34;第二个元素&#34;。
对于第二部分,有许多事情需要解释。首先,.=
是串联。所以:
$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 :(得分:1)
简单解释
Foreach
- 循环以轻松迭代数组,从第一个数组元素到最后一个数组元素。检查来自here的foreach引用是非常庞大的
$_SESSION['']
是php中的一个超级全局变量,其范围在代码的无限部分中可用。 session以数组的形式保存数据,因此循环将适用于每个session array变量。
$variable
是您创建的局部变量,可以是字符串或整数,类型转换在php中是自动的。
.=
是字符串连接,它将新内容附加到现有字符串内容。例如:
$string = "first_Name ";
$string .= "Last_Name";
echo $string; // output - first_Name Last_Name
<<<EOD
- php中有四种类型的字符串。它们是单引号(')
,双引号(")
和Nowdoc (<<<'EOD')
以及heredoc(<<<EOD)
字符串。了解它here