做php开发的小伙伴们,我们经常在一个php文件里不加?> 结束符的,有没有人想过这是为什么
我们先来看下加和不加的区别
1.加上?> 结束符,之后的内容会被视为纯文本输出,直到再次碰到 <? 或 <?php
- 不加?>结束符,之后的内容还是会被视为php代码,没有代码除外。
我们来看下例子:
<?php
$a = 1;
$b= 2;
echo $a;
?>
我在结束符后面特意多打了两个回车符,那输出的结果是什么呢?
我们发现两个回车符也输出了。
那我们再看下如果不加结束符的情况
<?php
$a = 1;
$b= 2;
echo $a;
同样,我在后面敲上两个回车符,我们看下输出结果:
我们发现后面的换行符不会输出
实际应用中我们的项目中经常会包含另外一个文件,我们知道在session_start()函数前是不能有输出的,如果我们包含的那个文件先输出了就会导致报错。
a.php
<?php
$a = 1;
$b = 2;
?>
b.php
<?php
include 'a.php';
session_start()
$b = 123;
那我们运行b.php 会得到怎样的结果呢?
我们发现报了两个warning级别的错误 headers already sent by,由此可以发现如果我们在某些php中加结束符会导致报错,在实际应用中我们一般不加?>结束符。