1

私は現在、この基本的な Codeigniter チュートリアルに従っており、著者はこの view/post_index.php ページでこの同様のコードを使用しました

if (!isset($posts)){ ?>
    <p> No Post to display </p>
<?php
} else {
    foreach ($posts as $row){
?>
    <h2> <?=$row['title']?> </h2>
        <p> <?=$row['post'] ?></p>

<?php
    }
}
?>

これで空のページを取得します

<h2> <?=$row['title']?> </h2>
<p> <?=$row['post'] ?></p>

私のソースで。

ただし、これを使用すると

    <h2> <?php echo $row['title']?> </h2>
    <p> <?php echo $row['post'] ?></p>

私は元気。私のすべての投稿が表示されます。私は wamp を実行しています (Web サイトから 64 ビット & Apache 2.4、2.2E バージョンをダウンロードしましたが、他の 4 つのパッケージとの違いはほとんど見られません....) Apache バージョン: 2.2.21
PHP バージョン: 5.3.10

何が起こっている?

ありがとうございました。

4

2 に答える 2

3

これは通常、ショートタグが有効になっていないことを意味します (ほとんどの PHP < 5.4.0 のインストールでは、デフォルトでショートタグがオフになっています)。ファイルを確認する必要がありphp.iniます。

それらを有効にする前に、 https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-phpを読むことをお勧めします- ショートを使用することには長所と短所があります-タグ構文。

@IMSoP も非常に有効な注意を払っています。

特に、 PHP < 5.4 を使用している場合は、short_open_tag オプション ( http://www.php.net/manual/en/ini.core.php#ini.short-open-tag ) を有効にする必要があります。5.4 以降、この設定は引き続き存在しますが、このケースでは必要<?= ... ?>なく、潜在的に問題がある場合にのみ必要です。<? ... ?>

于 2013-04-07T21:34:18.580 に答える