一連の変数があり、それらが 0 かどうかを確認したいのですが、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」用語が含まれています。それらは文字列「Unavailable」に置き換えられることはありません。
次のコードをデバッグしました。
foreach($indicators as $indicator)
{
echo 'Before: '.$indicator;
if($indicator==0)
{
$indicator='Unavailable';
}
echo '<br />';
echo 'After :'.$indicator;
}
そして、変数を再定義していることを確認しましたが、その再定義はループの外では適用されていませんでした。
これは範囲の問題だと思いますが、よく理解していないことを告白します。
私の質問は、ループ内で定義された変数を取得して、そのループ外に適用するにはどうすればよいですか?
ご感想ありがとうございます。