PHP实战PHP经验分享

为什么有些php代码最后不加?>

2020-01-11  本文已影响0人  十年磨一剑1111

做php开发的小伙伴们,我们经常在一个php文件里不加?> 结束符的,有没有人想过这是为什么
我们先来看下加和不加的区别
1.加上?> 结束符,之后的内容会被视为纯文本输出,直到再次碰到 <? 或 <?php

  1. 不加?>结束符,之后的内容还是会被视为php代码,没有代码除外。

我们来看下例子:

<?php
$a = 1;
$b= 2;
echo $a;
?>


我在结束符后面特意多打了两个回车符,那输出的结果是什么呢?


微信截图_20200111212353.png

我们发现两个回车符也输出了。
那我们再看下如果不加结束符的情况

<?php
$a = 1;
$b= 2;
echo $a;

同样,我在后面敲上两个回车符,我们看下输出结果:


微信截图_20200111213019.png

我们发现后面的换行符不会输出
实际应用中我们的项目中经常会包含另外一个文件,我们知道在session_start()函数前是不能有输出的,如果我们包含的那个文件先输出了就会导致报错。
a.php

<?php
$a = 1;
$b = 2;
?>

b.php

<?php
include 'a.php';
session_start()
$b = 123;

那我们运行b.php 会得到怎样的结果呢?


微信截图_20200111214658.png

我们发现报了两个warning级别的错误 headers already sent by,由此可以发现如果我们在某些php中加结束符会导致报错,在实际应用中我们一般不加?>结束符。

上一篇下一篇

猜你喜欢

热点阅读