2013-01-09 67 views
1

我有以下用于发送表单的变量和文本inisde的代码。我的问题是,我不知道如何执行该文本内的PHP,例如foreach函数。如何在<<< END中使用foreach,PHP

$somearray; 

$variable = <<<END 

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

END; 

你的帮助将非常感激。 谢谢

+0

您能不能告诉我们一个样本输出? –

+0

Eugh。那太糟了。在创建字符串之前准备好您的数据。 '$ v = implode('',$ somearray); $ variable =“Hello world $ v”;' – Quentin

回答

1

<<<END & END;与使用引号的代名词,用短短不到的\" 100倍。你不能在字符串中执行代码,你需要连接结果。

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

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

当你真正最有可能想要这个:

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

<<<语法是一个多行字符串格式。块内的所有内容都是字符串的一部分。你不能在那里有任何PHP代码。

如果你需要在那里有一个循环块,你需要在<<<块之前生成该字符串作为变量,并将其包含在字符串中。

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

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

(我还注意到,在你给的简单的例子,foreach()可以很容易地使用implode()