闭包函数中的 PHPdoc 异常对象?

PHPdoc Exception object in closure function?

如何在 $exception 变量中获取异常建议?

现在我正在使用 PHPStorm。我记得在 Netbeans 中有一个函数可以创建适当的 PHPdoc。

class Controller {

    /**
     * @param          $params
     * @param callable $callback
     * @return array|\Exception
     */
    public final function query(array $params, $callback = null) {

        try {

            /** another dummy code */

        } catch (\Exception $exception) {

            /** Boom! Error! */
            if (is_null($callback)) return $params; else return $callback(null, $exception);

        }
    }
}

class someController extends Controller {

    public function someFunction() {
        $someParams = [];

        $this->query($someParams, function ($response, $exception) {

            if ($exception) return print $exception->/**getMessage(), getCode() etc */;

            /** more dummy code */
            print $this->render("template.twig", $response);
        });
    }
}

$exception参数的

Declare the type。它可以解决您的所有需求:

function ($response, \Exception $exception = null) { ...

不仅如此,它还阻止回调在使用参数 $expection 的无效类型调用时工作。

需要为 $exception 声明默认值 (null) 以允许使用 null$exception 调用函数;否则,当使用 null 作为第二个参数调用函数时,PHP 会触发错误。