2017-11-13 1 views
0

저는 지난 이틀 동안 매우 이상한 문제에 직면 해 있습니다. 두 개의 다른 서버 중 하나는 windows (php v5.3)이고 두 번째는 Linux (php v7.1 ngnix)입니다. Windows 서버에서 이미 실행중인 프로젝트 (누군가에 의해 작성된)가 있습니다. 이제 코드 변경없이 Linux 서버에서이 프로젝트를 이동해야합니다. 내 문제는 로그인 기능이있다 -PHP ArgumentCountError 서버가 고유합니까?

Function userAuthentication($username,$password,$locationId,$url,$source) 
{ 
.... 
} 

그리고 내가 매개 변수가이 경우에 일치하지 않습니다하지만 시험으로,이 코드가 실제로 알고

userAuthentication($username, $password,'',$url) ; 

(윈도우 서버)로 호출 (수 나를 결과를주는 창에서 잘 작동하지만 같은 코드가 코드를 변경하여 리눅스 서버 -

ArgumentCountError: Too few arguments to function Authentication::userAuthentication(), 4 passed in

이 될 수 해결에 나에게 명백한 오류를주고 있지만 원하지 않는 것은 w 많은 기능을 할 수 i 같은 오류). 나는 이미 봤지만 아무 것도 발견하지 못했습니다. 나는 이것이 왜 창문에서 일어나지 않는지 알고 싶어합니다. 그 ArgumentCountError 서버 특정 또는 Windows 서버로 리눅스, 또는 PHP 버전 문제 또는 다른 구성으로 중요하지 않습니다.? 이 문제를 해결하기 위해 고쳐야 할 사항은 무엇입니까?

사람은 그 날을 도와주세요에 대해 어떤 생각을 가지고 감사

+0

물론 Google에 힘든 veeery 맞죠? http://php.net/manual/en/class.argumentcounterror.php –

+0

[Fatal error : Uncaught ArgumentCountError : Admincategory :: deletecategory(),] 함수가 너무 적습니다 (https://stackoverflow.com/). 질문/47108428/fatal-error-uncaught-argumentcounterror-too-few-arguments-to-function-admincat –

답변

2

의 차이는 PHP 버전 오히려 환경 (리눅스 대 윈도우)에 있지 않습니다.

당신은 7.1에 PHP 7.0에서 마이그레이션에 (링크 : http://php.net/manual/en/migration71.incompatible.php)에서 볼 수 있듯이 너무 적은 함수 인수

Previously, a warning would be emitted for invoking user-defined functions with too few arguments. Now, this warning has been promoted to an Error exception. This change only applies to user-defined functions, not internal functions. For example:

<?php 
function test($param){} 
test(); 

위의 예를 출력합니다 뭔가 전달에

던져를 유사 :

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

어떻게 해결할 수 있습니까?

함수에서 모든 매개 변수를 정의해야합니다. "불편"할 수도 있지만 개발자로서 더 나은 습관입니다. 이 문제와 관련하여 게으르지 마십시오.

+0

설명해 주셔서 감사합니다. 이제 당신이 제안한대로 많은 일을했습니다. : P –

+0

그래, 좋은 행운 :) –

1

(그들이해야대로)를 호출에 대한 자세한 엄격이있는 새로운 PHP 버전을 함께 할 모든 것을 갖추고 있습니다. 이 기능을 다시 사용하려면 기본값을 지정하여 추가 매개 변수를 선택적으로 만드십시오.

이런 종류의 문제를 방지하려면 로컬로 7.x로 업데이트해야합니다.

처럼 :

Function userAuthentication($username,$password,$locationId,$url,$source = '')