PHPのforeach

            <div class="section">

変数のスコープでかなりはまってしまった。

コードはCakePHP1.2です。

controller
$items = array(
  'HOGE_0',
  'HOGE_1',
  'HOGE_2',
  'HOGE_3'
);
$this->set('items', $items);
$this->set('key', 'a:1:{s:18:"hoge";s:2:"24";}');
view
<php foreach ($items as $key => $item) { >
  <item><php e(h($item)) ></item>
<php } >
  <key><php e(h($key)) ></key>

このプログラムでは、意図した出力がでなかったorz

予想していた出力
  <item>HOGE_0</item>
  <item>HOGE_1</item>
  <item>HOGE_2</item>
  <item>HOGE_3</item>
  <key>a:1:{s:18:"hoge";s:2:"24";}</key>
実際の出力
  <item>HOGE_0</item>
  <item>HOGE_1</item>
  <item>HOGE_2</item>
  <item>HOGE_3</item>
  <key>3</key>

「keyの値がなぜか3になってるー!」と悩んだが、すごい単純なミスだった。

foreachのなかで$keyの値を書き換えてしまっていたみたい。

foreachの$keyはforeachの中で専用に生成されて開放されると思っていました。。。