PHP 8.4.0 RC2 available for testing

The InvalidArgumentException class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception thrown if an argument is not of the expected type.

Class synopsis

class InvalidArgumentException extends LogicException {
/* Inherited properties */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Inherited methods */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
}
add a note

User Contributed Notes 1 note

up
16
Joey at anti-culture dot net
13 years ago
In my opinion this exception is invaluable for validating arguments- for example providing strict typing a la C:

<?php
function tripleInteger($int)
{
if(!
is_int($int))
throw new
InvalidArgumentException('tripleInteger function only accepts integers. Input was: '.$int);
return
$int * 3;
}

$x = tripleInteger(4); //$x == 12
$x = tripleInteger(2.5); //exception will be thrown as 2.5 is a float
$x = tripleInteger('foo'); //exception will be thrown as 'foo' is a string
$x = tripleInteger('4'); //exception will throw as '4' is also a string

?>
To Top