>  Q&A  >  본문

$yyy 뒤에는 선택적 매개변수 $xxx가 필요합니다.

<p><br /></p> <pre class="brush:none;toolbar:false;">사용 중단됨: 필수 매개변수 $xxx가 선택적 매개변수 $yyy 다음에옵니다... </pre> <p>PHP 8.0으로 업그레이드한 이후로 다음 코드를 실행할 때 이 오류가 발생합니다: </p> <pre class="brush:php;toolbar:false;">function test_function(int $var1 = 2, int $var2) { $var1 / $var2 반환; } </pre> <p>이전 PHP 버전에서는 문제가 되지 않았습니다. </p>
P粉764836448P粉764836448450일 전586

모든 응답(2)나는 대답할 것이다

  • P粉616383625

    P粉6163836252023-08-16 14:16:18

    기본값이 없는 필수 매개변수가 먼저 배치되어야 합니다.

    으아악

    회신하다
    0
  • P粉451614834

    P粉4516148342023-08-16 09:03:20

    이러한 함수 선언 방식은 PHP 8.0 에서 더 이상 사용되지 않습니다. 함수를 호출할 때 모든 인수(마지막 필수 인수까지)를 지정해야 하기 때문에 이와 같은 함수를 작성하는 것은 결코 의미가 없습니다. 이는 또한 클래스를 사용하여 함수와 메서드를 분석할 때 문제가 발생하여 혼란을 야기 ReflectionFunctionAbstract했습니다.

    새로운 지원 중단은 필수 매개변수가 항상 선택적 매개변수보다 먼저 선언되어야 한다는 상식 가정을 함수 서명이 따르도록 보장합니다.

    이전 매개변수의 기본값을 제거하려면 함수를 다시 작성해야 합니다. 모든 매개변수를 선언하지 않고는 함수가 호출되지 않으므로 이는 기능에 영향을 미치지 않습니다.

    으아악

    회신하다
    0
  • 취소회신하다