我使用以下代码创建了一个 php 测试脚本 test.php :
<?php
declare(strict_types=1);
function sum(int $a, int $b) : int {
return $a + $b ;
}
print(sum(2, 3));
然后当我尝试运行它时,我收到了这个致命错误:
Fatal error: strict_types declaration must be the very first statement in the script in C:\wamp\www\test.php on line 2
我在 Wampserver 3.1.3 上使用 PHP 7.2.4,并且通过浏览器访问脚本。
您是否将其保存在输出 UTF-8 BOM 的编辑器中?它是文件开头的一些不可见字节,将其标记为 Unicode,但 PHP 无法识别它。
尝试在记事本中打开文件,转到“另存为”并选择 ANSI 编码。
还要确保开始标记之前没有任何行。听起来好像有一个。
开头有多余空格时也会出现此错误。应在
<?php
之前特别删除空格
我使用 script 标签来解决这个问题。
<script>declare(strict_types=1);</script>
。
记住这一点,把它放在 body 的第一个位置。
我用这样的utf-8来解决:
<html>
<head>
<meta charset='UTF-8' />
</head>
<body>
...