为什么有些php代码有<?php但是没有?>结束呢?
LS几位写的都不错, 再多说几句吧
a.php:
<?php
// some code 注意最末尾 ?> 之后有空白字符
?>
b.php:
<?php
require "a.php";
header('xxxx');
?>
a.php末尾的空白字符也会被输出,然后就报错了,然后就找了N久也没找到错误在哪儿~~ 然而不带?>
就不会出现这个问题。
都是血和泪的教训
我看了下,答案里面没有提到PSR规范的,PSR-1基本代码规范中,关于代码开头和PHP标签开头的描述如下:
概览
PHP代码文件必须以 <?php 或 <?= 标签开始;
2.1. PHP标签
PHP代码必须使用 <?php ?> 长标签 或 <?= ?> 短输出标签;
而所有PSR-1到4的示例代码,都没有用?>作为结束,可以借鉴参考。
如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图。
<?php
echo "Hello world";
// ... more code
echo "Last statement";
// 脚本至此结束,并无 PHP 结束标记
2 回答1.3k 阅读✓ 已解决
2 回答819 阅读✓ 已解决
1 回答892 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答878 阅读
1 回答870 阅读
1 回答800 阅读
PHP-FIG/PSR-2:代码风格规范