我想知道是否有一种方法可以在我的php文件顶部声明一个包含一些'数组内容'的变量,并将它用于某个地方的某个foreach循环中? 例如:
$variable = 'Here is some text, and here is the value:'.$items->value.'.';
foreach ( $somearray as $items ) {
echo $variable;
}
*注意:我使用ezsql进行数据库操作,因此$ items->值变量....
有意义吗?我只是想让我的文件在其他情况下很容易改变......或者有更好的方法吗?
感谢您寻求帮助。
答案 0 :(得分:1)
您可以使用eval()
,但您应该知道它存在风险,并且您最好了解使用它的后果。
除此之外,你可以像你说的那样使用它,但是逃避美元符号,这样它就不会被作为变量对待,直到foreach,或使用单引号:
$variable = 'Here is some text, and here is the value: {$items->value}';
foreach ( $somearray as $items ) {
echo eval('return "'.$variable.'";');
}
答案 1 :(得分:1)
还是有更好的方法吗?
使用函数/方法:
function formatItems($items)
{
return 'Here is some text, and here is the value:'.$items->value.'.';
}
foreach ( $somearray as $items ) {
echo formatItems($items);
}
使用函数可以进行更复杂的格式化。如果它与您的示例一样简单,您可以使用printf,as suggested by lonesomeday。
如果合适,您可以在Items类定义中使用display / format方法。
答案 2 :(得分:1)
我认为,最好的方法是printf
。这不完全是你要求的,但我认为这将使你的代码更清洁。
$variable = 'Here is some text, and here is the value:%s.';
foreach ($somearray as $items) {
printf($variable, $items->value);
}
作为printf
的第二个参数传递的值将被替换为代码。
答案 3 :(得分:0)
您的$items
变量将被for循环覆盖 - $variable
将不会。
答案 4 :(得分:-1)
$ variable仅设置一次并且当时取值$ items-&gt;值(这可能会导致错误,因为当时$ items不存在并且您正在引用一个字段。< / p>
你想要的是这个:
$variable = 'Here is some text, and here is the value: {$items->value}';
foreach ( $somearray as $items ) {
echo $variable;
}