在PHP 7中同时使用shebang和严格类型声明

7
我正在使用PHP7编写一个命令行脚本。当我在文件顶部加入shebang(#!/usr/bin/php),并使用declare(strict_types=1)添加严格模式时,会出现以下错误:
PHP Fatal error: strict_types declaration must be the very first statement in the script in index.php on line 3
我唯一发现让严格类型起作用的方法是删除shebang行。是否有同时使用shebang和严格类型的方法?或者这是PHP的bug?

3
这对我来说可以工作且确实起作用。请提供完整的脚本以及如何调用它。也许您误操作插入了多余的换行符或类似的东西? - NikiC
你是对的,在 shebang 和 php 开始标签之间有一个新行...我没有看到它,因为我使用插件自动添加 shebang 行。我感到很愚蠢... - ᴄʀᴏᴢᴇᴛ
VTC只是一个简单的打字错误/无法重现。这就是为什么我们期望在问题中有一个[MCVE]的原因。 - Lightness Races in Orbit
1个回答

5

好的,以下是为什么严格类型声明无法正常工作的原因:我在shebang和php开标签之间有一个新行。

正常工作的示例:

#!/usr/bin/php
<?php
declare(strict_types=1);

// your code

True,您可以在<?php开头标记和严格类型声明之间添加额外的空格。 - 0x6d6c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接