PHP报错”InvalidArgumentException”是什么原因?怎么处理

  • Post category:PHP

“InvalidArgumentException” 是一个常见的 PHP 报错,通常在处理方法或函数参数时出现。这种错误的意思是函数或方法传入的参数无效或不符合预期。具体原因可能是类型不匹配、缺失必须参数、参数格式错误等等。

解决方法:
1. 检查参数类型
2. 检查参数数量
3. 检查参数格式

下面提供两个示例:

示例1

function test($param1, $param2) {
   if(empty($param1) || empty($param2)) {
      throw new InvalidArgumentException("Invalid argument. Parameter is missing");
   }
   // rest of the code
}

test("hello");

这段代码中,test() 函数期望传入两个参数,但只有一个参数 “hello” 被传入,导致函数抛出一个异常:”Invalid argument. Parameter is missing”。

解决方式是确保函数调用时传入了正确数量和类型的参数,即 test("hello", "world");

示例2

function add ($num1, $num2) {
  if (!is_numeric($num1) || !is_numeric($num2)) {
    throw new InvalidArgumentException("Invalid argument. Parameter should be numeric");
  }
  return $num1 + $num2;
}

$result = add("10", "abc");

在这个例子中,add() 函数期望传入两个数字类型的参数,但是第二个参数 “abc” 并不是一个数字类型的参数,导致函数抛出一个异常:”Invalid argument. Parameter should be numeric”。

解决方式是确保传入的参数都是数字类型的,比如这样调用:$result = add(10, 20);