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

我的PHP函数应该如何处理无效参数?,php,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_WARNI

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

<?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手册中的

编辑:以下是一些有用的SO线程


  • 您可以抛出一个异常。看看PHP手册中的

    编辑:以下是一些有用的SO线程

  • 看看包裹。它有很多方便的验证器,可以完成您想要做的事情

    比如说,

    $index = \Altumo\Validation\Numerics::assertInteger( 
        $index, 
        'Cursor::insertAfter() expects parameter 1 to be integer, ' . gettype( $index ) . ' given'
    );
    
    有对象类型、字符串、布尔值等

    p.S.异常比trigger_error()更灵活,因为您可以更精确地控制它们

    查看该软件包。它有很多方便的验证器,可以完成您想要做的事情

    比如说,

    $index = \Altumo\Validation\Numerics::assertInteger( 
        $index, 
        'Cursor::insertAfter() expects parameter 1 to be integer, ' . gettype( $index ) . ' given'
    );
    
    有对象类型、字符串、布尔值等


    p.S.异常比trigger_error()更灵活,因为您可以更精确地控制它们

    我本来就有,但我不想在我的代码中乱放try-catch语句。这是最合适的。@Rogue你不必捕捉这样的异常,这就是重点。传递一个无效的参数类型是不应该被捕获的,这是一个异常的错误,应该停止您的程序并导致您修复代码。@deceze感谢您的指出,这正是我要寻找的。另外,感谢您澄清异常。我本来就有,但我不想用try-catch语句乱丢代码。这是最合适的。@Rogue您不必捕捉这样的异常,这就是重点。传递一个无效的参数类型是不应该被捕获的,这是一个异常的错误,应该停止您的程序并导致您修复代码。@deceze感谢您的指出,这正是我要寻找的。另外,感谢您澄清例外情况。