Computer >> Máy Tính >  >> Lập trình >> PHP

PHP ArgumentCountError

Giới thiệu

Trình phân tích cú pháp PHP ném ArgumentCountError khi các đối số được truyền cho một hàm hoặc phương thức do người dùng xác định nhỏ hơn các đối số trong định nghĩa của nó. ArgumentCountError lớp được kế thừa từ TypeError lớp học

Ví dụ về ArgumentCountError

Trong ví dụ sau, hàm add () do người dùng định nghĩa được định nghĩa để nhận hai đối số. Tuy nhiên, nếu số lượng đối số được cung cấp ít hơn yêu cầu trong khi gọi, ArgumentCountError sẽ được ném ra có thể được xử lý bằng khối catch.

Ví dụ

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

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

Trong ví dụ sau, setdata () trong myclass được định nghĩa để có hai đối số chính thức. Khi phương thức này được gọi với ít đối số hơn, ArgumentCountException sẽ được ném

Ví dụ

<?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();
}
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

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

ArgumentCountException cũng được ném ra trong trường hợp hàm tích hợp được cung cấp số lượng đối số không phù hợp hoặc không hợp lệ. Tuy nhiên, loại nghiêm ngặt chế độ phải được đặt

Ví dụ

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

strlen() expects exactly 1 parameter, 2 given