1

我有以下代码,其中包含用于发送表单的变量和文本 inisde。我的问题是我无法弄清楚如何在该文本中执行 php,例如 foreach 函数。

$somearray;

$variable = <<<END

Hello world foreach($somearray as $v){echo $v} //this does not work of course in my case.

END;

你的帮助将不胜感激。谢谢你


<<<END&END;是使用引号的同义词,只是少用了100\"次。您不能在字符串中执行代码,而是需要连接结果。

你想要做的基本上是这样的:

$variable = "foreach($somearray as $v) echo $v;";

当你真的很可能想要这个时:

$variable = "";
foreach ($somearray as $v) $variable .= $v;
4

2 回答 2

1

<<<END&END;是使用引号的同义词,只是少用了100\"次。您不能在字符串中执行代码,而是需要连接结果。

你想要做的基本上是这样的:

$variable = "foreach($somearray as $v) echo $v;";

当你真的很可能想要这个时:

$variable = "";
foreach ($somearray as $v) $variable .= $v;
于 2013-01-09T14:16:06.650 回答
0

<<<语法是多行字符串格式。块内的所有内容都是字符串的一部分。您不能在其中包含任何 PHP 代码。

如果您需要在其中有一个循环块,则需要在<<<块之前生成该字符串作为变量,并以这种方式将其包含在字符串中。

$ins = '';
foreach($myarray as $val) {$ins .= "blah, {$val}, etc, ";}

$variable = <<<END
    Hello world {$ins}
END;

(我还要注意,在您给出的简单示例中,foreach()可以很容易地使用implode()

于 2013-01-09T14:33:23.530 回答