2017-11-20 6 views
0

だから私はこの時点で私の髪を引っ張っている:私は、Windows Server 2012 R2 Datacenter Editionの、私がアップロードにPHP 7.1.11で設定IISのWebサーバを持っている/PHP奇数解析エラー

ページには、それはパースエラーがスローされます。

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で可能でなければならないということです。(そしてapache2でubuntuを実行しているLinuxマシンのこの同じコードはうまく動作します)

また、最後に、配列が返されると仮定すると、解析エラーではなく、定義されていないインデックスエラーが発生します。

誰でも原因がわかりますか?

ありがとうございます!

+1

これはPHP 7をどの程度実行していますか?これを 'phpinfo()'で確認しましたか? 'Database :: fetch_assoc'コードの解析エラーメッセージは何ですか? – ceejayoz

+0

私は、PHP 7.1.11 x64を実行しています。それは私がそれがPHP 5.3のものだと思ったので、私がチェックした最初のものです。 'Database :: fetch_assoc'コードの解析エラーはまったく同じです。 – Niels

+2

私はあなたがチェックした方法について*好奇心が強いです。あるサーバ上に複数のバージョンのPHPが存在する可能性があります。 'password_hash()'行を 'phpinfo()'に置き換えた場合、出力にPHP 7が表示されますか?問題のある行の前/後の行のカップルは何を言っていますか? – ceejayoz

答えて

3

よろしくお願いします。ceejayozのおかげで問題が判明しました。 phpinfo()をtest.phpというファイルに置くと、私はPHP 7.1を実行していると言いました。

ここで、解析エラーをスローしていたスクリプトを実際に呼び出すファイルの拡張子は.htmlでした。またIISには、古い5.3の実行可能ファイルを指すhtmlファイル用の異なるHandlerマッピングがありました。

これで、.htmlファイルのハンドラが変更されたので、すべてが再びチャームのように機能します。

多くの感謝!

+0

私は助けることができてうれしいです。 :-) – ceejayoz