소개
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