【问题标题】:PHPdoc Exception object in closure function?闭包函数中的PHPdoc异常对象?
【发布时间】:2018-02-22 14:46:00
【问题描述】:

如何在 $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);
        });
    }
}

【问题讨论】:

标签: php closures phpdoc


【解决方案1】:

$exception 参数的Declare the type。它可以满足您的所有需求:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 2021-07-13
    • 2013-05-11
    • 2012-11-27
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    相关资源
    最近更新 更多