The InvalidArgumentException class

(PHP 5 >= 5.1.0)

Introdução

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

Sinopse da classe

InvalidArgumentException extends LogicException {
/* Propriedades herdadas */
protected string $message ;
private string $string ;
protected int $code ;
protected string $file ;
protected int $line ;
private array $trace ;
/* Métodos herdados */
final public string Exception::getMessage ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public string Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private string Exception::__clone ( void )
}
add a note add a note

User Contributed Notes 2 notes

up
0
Joey at anti-culture dot net
3 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

?>
up
-7
edsonhoraciojunior at gmail dot com
11 months ago
A version of Joey's code that validates if the number really isn't int:

function tripleInteger($int)
{
  // if is a number and is not float (doesn't have a decimal separator)
  if(is_numeric($int) && strpos($int, ".") === false) {
    $int = intval($int);
  } 
  if(!is_int($int))
    throw new InvalidArgumentException('tripleInteger function only accepts integers. Input was: '.$int);
  return $int * 3;
}
To Top