Codeigniter php短标签不起作用

时间:2013-04-07 21:31:59

标签: php codeigniter php-shorttags

我目前正在关注这个基本的Codeigniter教程,作者在此视图/ 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(只是从网站上下载了64位和Apache 2.4,2.2E版本,除了我看不到他们拥有的所有其他4个软件包有多大差别......)     Apache版本:2.2.21
     PHP版本:5.3.10

发生了什么事?

谢谢。

2 个答案:

答案 0 :(得分:3)

这通常意味着您没有启用短标签(大多数PHP&lt; 5.4.0安装默认情况下都会启用它们)。您需要检查php.ini文件。

在启用它们之前,我建议阅读https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php - 使用短标记语法有利有弊。

@IMSoP也提供了非常有效的说明:

  

具体来说,您需要short_open_tag选项   (http://www.php.net/manual/en/ini.core.php#ini.short-open-tag)已启用   如果使用PHP&lt; 5.4。从5.4开始,此设置仍然存在,   但<?= ... ?>案件不需要,只有潜在的案件   有问题的<? ... ?>

答案 1 :(得分:-2)

如果你想使用short_tags,你需要short_tags,你必须在application/config/config.php

中启用它们
$config['rewrite_short_tags'] = TRUE;`

请查看文档Codeigniter Documentation

文件清楚地说:

  

注意:如果您发现此页面中描述的语法不起作用   在您的服务器上,可能是您的PHP中禁用了“短标记”   ini档案。 CodeIgniter可以选择性地重写短标签,   即使您的服务器不支持,也允许您使用该语法   它。可以在config / config.php文件中启用此功能。

     

请注意,如果您使用此功能,则表示PHP错误   在您的视图文件中遇到错误消息和行号   没有准确显示。相反,所有错误都将显示为eval()   错误。