Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 인수 개수 오류

<시간/>

소개

PHP 파서는 사용자 정의 함수 또는 메소드에 전달된 인수가 정의에 있는 인수보다 적을 때 ArgumentCountError를 발생시킵니다. ArgumentCountError 클래스는 TypeError에서 상속됩니다. 수업

ArgumentCountError 예

다음 예에서 사용자 정의 함수 add()는 두 개의 인수를 수신하도록 정의됩니다. 단, 호출 시 필요한 인수보다 적은 수의 인수를 제공하면 catch 블록으로 처리할 수 있는 ArgumentCountError가 발생합니다.

예시

<?php
function add($x, $y){
   return $x+$y;
}
try{
   echo add(10);
}
catch (ArgumentCountError $e){
   echo $e->getMessage();
}
?>

출력

이것은 다음 결과를 생성합니다 -

Too few arguments to function add(), 1 passed in C:\xampp\php\test.php on line 6 and exactly 2 expected

다음 예에서 setdata() myclass의 메소드 두 개의 형식 인수를 갖는 것으로 정의됩니다. 이 메서드가 더 적은 인수로 호출되면 ArgumentCountException이 발생합니다.

예시

<?php
class myclass{
   private $name;
   private $age;
   function setdata($name, $age){
      $this->name=$name;
      $this->age=$age;
   }
}
try{
   $obj=new myclass();
   obj->setdata();
}
catch (ArgumentCountError $e){
   echo $e->getMessage();
}
?>

출력

이것은 다음 결과를 생성합니다 -

Too few arguments to function myclass::setdata(), 0 passed in C:\xampp\php\test.php on line 15 and exactly 2 expected

내장 함수에 부적절하거나 잘못된 인수 수가 제공된 경우 ArgumentCountException도 발생합니다. 그러나 엄격한 유형 모드를 설정해야 합니다.

예시

<?php
declare(strict_types = 1);
try{
   echo strlen("Hello", "World");
}
catch (ArgumentCountError $e){
   echo $e->getMessage();
}
?>

출력

이것은 다음 결과를 생성합니다 -

strlen() expects exactly 1 parameter, 2 given