2017-11-20 15 views
0

그래서 나는이 시점에서 내 머리를 잡아 당겨 해요 : 나는 윈도우 서버 2012 R2 데이터 센터 에디션, 내가로드에 PHP 7.1.11로 설정는 IIS 웹 서버를 가지고/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와 함께 우분투를 실행하는 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