<! - ?有什么区别?和<?php

时间:2016-04-02 10:29:07

标签: php apache

我有一些用PHP 5.3编写的旧遗留代码。

此代码中的所有PHP块都是

<? some_php_code_here ?> 

而我的Apache只是忽略了它们,而与

配合良好
<?php some_php_code_here ?> 

为什么旧代码包含无效的块,以及为什么这个旧代码在旧服务器上运行良好?用这么多特殊符号谷歌的东西真的很难,对不起愚蠢的问题

1 个答案:

答案 0 :(得分:1)

<?被称为php短标记

以下是 manual 对此所说的内容

  

PHP还允许短开标记&lt;? (因为它而气馁   仅在使用short_open_tag php.ini启用时才可用   配置文件指令,或者如果PHP配置了   --enable-short-tags选项)。

您可以在运行时使用<?php ini_set('short_open_tag',1) ?>

启用它们

但如果你这样做,你就不能像<?xml ?>一样使用内联xml 而你可以使用

<?php echo '<?xml version="1.0"?>'; ?>

作为附注,我经常使用:

<a href="<?= "$hello_url" ?>"><?= "Hello world" ?></a> 

<?= 'foo' ?>相当于<?php echo 'foo' ?>,在我看来模板文件看起来更清晰

自php版本5.4起,<?=不再与short_open_tag绑定,但在此之前,如果您可能在较旧的php版本上运行代码,则应该小心