PHP奇怪的解析错误

时间:2017-11-20 01:26:25

标签: php php-7.1

所以我此时拔掉头发:/

我在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中应该可以在移动中声明一个类似的数组(并且运行ubuntu的Linux机器上的相同代码与apache2一样)

也是我"假设"的最后一个案例。返回一个数组最多应该抛出一个未定义的索引错误而不是解析错误。

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

提前致谢!

1 个答案:

答案 0 :(得分:4)

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

现在实际调用抛出解析错误的脚本的文件扩展名为.html。 IIS对于指向旧的5.3可执行文件的html文件有不同的Handler映射。

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

非常感谢!