获取:当我尝试在我的 PHP 文件上使用声明(strict_types=1)时出现致命错误

问题描述 投票:0回答:5

我使用以下代码创建了一个 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,并且通过浏览器访问脚本。

php-7.2
5个回答
12
投票

您是否将其保存在输出 UTF-8 BOM 的编辑器中?它是文件开头的一些不可见字节,将其标记为 Unicode,但 PHP 无法识别它。

尝试在记事本中打开文件,转到“另存为”并选择 ANSI 编码。

还要确保开始标记之前没有任何行。听起来好像有一个。


1
投票

开头有多余空格时也会出现此错误。应在

<?php

之前特别删除空格

1
投票

我使用 script 标签来解决这个问题。

<script>declare(strict_types=1);</script>
。 记住这一点,把它放在 body 的第一个位置。


0
投票

我用这样的utf-8来解决:

<html>
    <head>
        <meta charset='UTF-8' />
    </head>
    <body>
    ...

0
投票

确保

<?php
是脚本文件的第一行。即使是空的新行也会导致这个问题。

错了

正确

© www.soinside.com 2019 - 2024. All rights reserved.