PHP 奇怪的解析错误

PHP odd parse errors

所以我现在正在拔头发:/

我在 Windows Server 2012 R2 Datacenter Edition 上设置了 PHP 7.1.11 的 IIS 网络服务器,当我加载页面时它抛出解析错误:

Parse error: syntax error, unexpected '[' in functions.php on line 138

现在出错的实际代码如下

$hash = password_hash($nieuwWachtwoord,PASSWORD_DEFAULT, ["cost" => 13]);

当我把它改成

$hash = password_hash($nieuwWachtwoord,PASSWORD_DEFAULT,array("cost" => 13));

它执行代码没有任何问题。

但是当我调用另一个函数时运行下面的代码

 Database::fetch_assoc("SQL-STRING", array($id))[0]['cdate'];

它还会抛出一个解析错误。令人沮丧的是,这不应该发生,因为在 php7.1 中应该可以在旅途中声明这样的数组(并且在 Linux 机器 运行 ubuntu 与 apache2 一样工作)

还有最后一种情况,我 "assume" 返回一个数组最多应该抛出一个未定义的索引错误而不是解析错误。

有谁知道可能是什么原因吗?

提前致谢!

好的,感谢 ceejayoz,我发现了问题。 当我将 phpinfo() 放在一个名为 test.php 的文件中时,它告诉我我是 运行 PHP 7.1 .

现在,实际调用引发解析错误的脚本的文件具有 .html 扩展名。 IIS 对指向旧 5.3 可执行文件的 html 文件有不同的处理程序映射。

现在我更改了 .html 文件的处理程序,它再次像魅力一样工作!

非常感谢!