Giới thiệu
Parser PHP ném ArgumentCountError khi đối số truyền cho hàm/user method ít hơn định nghĩa. Lớp ArgumentCountError kế thừa từ TypeError.
Ví dụ ArgumentCountError
Hàm add() định nghĩa nhận 2 đối số. Nếu gọi với ít hơn, ArgumentCountError ném ra, bắt bằng catch.
Ví dụ
<?php function add($x, $y) { return $x + $y; } try { echo add(10); } catch (ArgumentCountError $e) { echo $e->getMessage(); } ?>Kết quả
Too few arguments to function add(), 1 passed in C:\xampp\php\test.php on line 6 and exactly 2 expected
Ví dụ method setdata() trong myclass định nghĩa 2 tham số. Gọi với ít tham số ném ArgumentCountException:
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(); } ?>Kết quả
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 ném khi hàm tích hợp nhận số đối số không hợp lệ. Tuy nhiên chế độ strict-types phải bật.
Ví dụ
<?php declare(strict_types = 1); try { echo strlen("Hello", "World"); } catch (ArgumentCountError $e) { echo $e->getMessage(); } ?>Kết quả
strlen() expects exactly 1 parameter, 2 given