我正在阅读一些我一直在使用的旧代码,并且因为它仍在运行而知道有效。然而,当我发现我写了一个<?
而不是<?PHP
时,我很困惑。然而,之后的代码仍然有效。 这是定义的吗?这应该是这样的吗?我编写的代码是否比我可能的多一些?离开PHP
感觉很脏,但是如果可以的话,我也可以,对吗?
沙箱:http://sandbox.onlinephpfunctions.com/code/69b81a2f45927d3feb52af012521480e1ba01edd
答案 0 :(得分:5)
来自PHP manual:
当PHP解析文件时,它会查找开始和结束标记,它们是
<?php
和?>
,它告诉PHP开始和停止解释它们之间的代码。以这种方式解析允许PHP嵌入到各种不同的文档中,因为PHP解析器会忽略一对开始和结束标记之外的所有内容。PHP还允许使用短开放标记
<?
和?>
(不建议这样做,因为它们只有在使用short_open_tag
php.ini配置文件指令启用时才可用,或者如果配置了PHP使用--enable-short-tags
选项。
答案 1 :(得分:5)
它取决于服务器配置。如果服务器已启用short_open_tag
short_open_tag=On
在php.ini文件中,PHP将允许短标签。
注意: PHP不建议使用短标记。
答案 2 :(得分:3)
如果您只能使用<?php ?>
,或者您可以同时使用<? ?>
和<?php ?>
,具体取决于服务器配置。
启用<? ?>
可能会导致某些应用程序出现问题。想象一下,您在index.php
或index.phtml
文件中包含此代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head></head>
<body></body>
</html>
启用<? ?>
后会遇到错误,因为<?
是xml定义的一部分:
<?xml version="1.0" encoding="UTF-8"?>
因此,您必须在服务器配置中禁用<? ?>
的使用,否则您将不得不使用某些解决方法。
然而,<? ?>
的使用使得组合HTML和PHP代码的文件更具可读性。
<?= $var ?>
比<?php echo $var ?>
更具可读性且更短。