©
本文档使用 PHP中文网手册 发布
(PHP 5 >= 5.1.0)
Exception thrown if an argument is not of the expected type.
[#1] Halfi [2015-06-02 15:57:52]
$x = tripleInteger([1,2]); //warning!!!
[#2] edsonhoraciojunior at gmail dot com [2013-11-08 14:21:46]
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;
}
[#3] Joey at anti-culture dot net [2011-02-02 21:08:01]
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
?>