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