我的PHP函数应如何处理无效参数?

时间:2011-12-09 03:46:04

标签: php

我正在创建一些可重用的函数,现在我有这样的错误处理设置:

<?php
...
public function insertAfter( $index, $objects )
{
    if ( ! is_int( $index ) ) {
        trigger_error( 'Cursor::insertAfter() expects parameter 1 to be integer, ' . gettype( $index ) . ' given', E_USER_WARNING );
    } else {
        // Do my regular code
    }

    return $this;
}
...

我尝试将其设置为像PHP处理错误一样工作。这是一种适当的做事方式吗?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

查看Altumo包。它有相当多的方便的验证器,可以做你想做的事情。

例如,

$index = \Altumo\Validation\Numerics::assertInteger( 
    $index, 
    'Cursor::insertAfter() expects parameter 1 to be integer, ' . gettype( $index ) . ' given'
);

对象类型,字符串,布尔值等有validators

P.S。异常比trigger_error()更灵活,因为您可以更精细地控制它们。 Here's a good thread on that topic.