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