有没有更好的方法来检查PHP中的输入参数类型?

时间:2016-08-17 20:18:18

标签: php

我想检查$ duration是DateInterval类型的对象,否则抛出异常。如果$ duration不是对象,则get_class函数失败...并且此代码看起来很长

        if (is_object($duration)) {
            if (get_class($duration) != "DateInterval") {
                throw new \Exception('The provided duration is not DateInterval type.');
            }
        } else {
            throw new \Exception('The provided duration is not DateInterval type.');
        }

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

我会使用instanceof方法。参见示例:

$obj = new A();

if ($obj instanceof A) {
    echo 'A';
}

https://secure.php.net/manual/en/internals2.opcodes.instanceof.php

答案 1 :(得分:2)

使用instanceof

if (!$duration instanceof DateInterval) {
    // throw Exception
}