foreach文で変数をresetする

投稿記事のタイトルリストをPHPで表示させていて、変なことに気がついた。

表示してあるページとは異なるページの引数をひっぱてきているみたい。

======
(例)
下記の様な条件ページで、
・固定ページで、タイトル一覧リストを表示
・コメント投稿不可

下記の様に表示される。
・コメント投稿欄が表示されている。
・タイトル一覧リストの一番最後に表示されている投稿ページの引数を引っ張ってきているみたい(SNSの共有ボタンの共有 URLがおかしい)。

=======

いろいろネットで調べたところ、foreach文で変数に入れたデータが残ってしまっていて、終了後もクリアされていないようだ。
最後に入れたデータが残ってしまい、そのデータに影響を受けて、違うページと認識して間違った挙動をしているみたい。

あか抜けないが、以下のようにすることにした。

・foreach文の前に、$postの中身をいったん、別の変数に保存。
・foreach文を実行。
・foreach文終了後、ストックしてあった変数を戻す。setup_postdata宣言もして、その$postの内容を渡しておく。

ラボの過去記事のPHPなら、下記の様に書き直して使う。

[php]

  • “>


  • [/php]

    [php]

    この記事の目次

    2007年12月