【发布时间】:2013-03-22 04:02:03
【问题描述】:
我有一系列变量,我想检查它们是否为 0,如果是,我希望重新定义变量以等于字符串 'Unavailable'。
为此我写了一个循环:
$indicators=array($admitted, $targeted, $cured, $defaulted, $total);
foreach($indicators as $indicator)
{
if($indicator==0)
{
$indicator='Unavailable';
}
}
这会检查数组 $indicators 中的每个变量是否等于零,如果是则重新定义它。
然而,在这个循环结束后,一个表是使用变量构建的:
$table1 .= '
<tr>
<td>'.$year.'</td>
<td>'.$targeted.'</td>
<td>'.$admitted.'</td>
<td>'.$total.'</td>
<td>'.$cured.'</td>
<td>'.$defaulted.'</td>
</tr>
';
其中的输出包含一些“0”项 - 它们永远不会替换字符串“不可用”。
我用以下代码调试了代码:
foreach($indicators as $indicator)
{
echo 'Before: '.$indicator;
if($indicator==0)
{
$indicator='Unavailable';
}
echo '<br />';
echo 'After :'.$indicator;
}
并确认它正在重新定义变量,但重新定义并未在循环之外应用。
我觉得这是范围的问题 - 我承认我没有很好地理解。
我的问题是:如何将循环内定义的变量应用到循环外?
非常感谢您的想法。
【问题讨论】: