我有一段代码需要直接从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
- 循环以轻松迭代数组工作从第一个数组元素到最后一个数组元素。查看来自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