为什么这个PHP迭代不起作用?

Ale*_*Mcp 0 php iteration concatenation

我想将foreach循环的结果变成一个字符串变量,我以后可以使用它(所以我不需要在任何地方粘贴foreach循环).我有这个:

foreach($pairs as $d=>$m) {
$orderedpairs .= "[".$d."],[".$m."]"+"<br />";
}
echo $orderedpairs;
Run Code Online (Sandbox Code Playgroud)

如果我用"echo"替换赋值运算符,它工作正常,所以循环没问题,我认为这只是问题的变量赋值.谢谢!

Mat*_*att 12

你有一个+用于连接.你需要 .

此外,您应该在循环之前将$ orderedpairs定义为空字符串.

  • 你没必要,但这是一个很好的做法. (2认同)

Rob*_*ska 7

加号导致您的连接失败 - 将其更改为a .

与其他人所说的相反,变量的范围不是问题.您可以在循环内声明它们并在它之后访问它们.PHP变量的范围不像Java,C#和其他语言.

  • PHP范围比其他一些语言更简单.变量实际上只有一个"全局"或"函数"范围 - 如果在函数内部声明了一个变量,那么在该函数内声明之后,它就可以随时访问.如果它在if语句,while循环或任何其他块中,在Java之类的语言中被认为是更窄的范围,则无关紧要. (2认同)