所以我此时拔掉头发:/
我在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一样)
也是我"假设"的最后一个案例。返回一个数组最多应该抛出一个未定义的索引错误而不是解析错误。
有谁知道原因可能是什么?
提前致谢!
答案 0 :(得分:4)
好的,谢谢ceejayoz我发现了问题。 当我把phpinfo()放在一个名为test.php的文件中时,它告诉我运行的是PHP 7.1。
现在实际调用抛出解析错误的脚本的文件扩展名为.html。 IIS对于指向旧的5.3可执行文件的html文件有不同的Handler映射。
现在我更改了.html文件的处理程序,它再次像魅力一样!
非常感谢!