我目前正在开发我的PHP SDK以与REST API进行交互.假设API可以创建一个"汽车"模型.要创造一辆车,我会写这样的东西......
$car = $api->create('car', array(
'wheels' => 6,
'color' => 'blue'
));
Run Code Online (Sandbox Code Playgroud)
如果其他开发人员下载我的SDK并尝试错误地创建汽车模型并忘记包含必需的参数.如何通过SDK抛出异常以通知开发人员缺少参数,除了他们看到PHP错误Warning: Missing argument 1 for BMW::create(),其中不包含许多细节.
function foo($bar, $baz) {
if (!isset($bar, $baz)) {
throw new InvalidArgumentException("Detailed description of what's wrong here");
}
...
}
Run Code Online (Sandbox Code Playgroud)
PHP会触发一个警告,但仍会像往常一样执行你的功能(这是......好吧,我们不要纠缠于此).这意味着您可以在函数内部进行常规参数检查,并trigger_error根据需要尽可能详细地抛出异常或所需内容.