Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ArgumentCountError


แนะนำตัว

PHP parser ส่ง ArgumentCountError เมื่ออาร์กิวเมนต์ส่งผ่านไปยังฟังก์ชันหรือเมธอดที่ผู้ใช้กำหนดน้อยกว่าที่กำหนดไว้ในคำจำกัดความ ArgumentCountError คลาสนั้นสืบทอดมาจาก TypeError คลาส

ตัวอย่าง ArgumentCountError

ในตัวอย่างต่อไปนี้ ผู้ใช้กำหนดฟังก์ชัน add() ถูกกำหนดให้รับสองอาร์กิวเมนต์ อย่างไรก็ตาม หากมีการระบุจำนวนอาร์กิวเมนต์น้อยกว่าที่ต้องการขณะโทร ArgumentCountError จะถูกส่งออกไป ซึ่งสามารถจัดการกับ catch block ได้

ตัวอย่าง

<?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