TP5.x——initialize()中如何return

前言

首先在tp框架中initialize中是无法直接通过return来返回任何值的,return并不会造成脚本的中断!

环境:PHP 7.0.4 | TP5.1

 

说明

initialize方法

首先initialize方法是TP框架自定义的一个控制器初始化函数,在thinkphp\library\think\Controller.php中我们可以看到该函数。

/**
     * 构造方法
     * @access public
     */
    public function __construct(App $app = null)
    {
        $this->app     = $app ?: Container::get('app');
        $this->request = $this->app['request'];
        $this->view    = $this->app['view'];

        // 控制器初始化
        $this->initialize();

        $this->registerMiddleware();

        // 前置操作方法 即将废弃
        foreach ((array) $this->beforeActionList as $method => $options) {
            is_numeric($method) ?
            $this->beforeAction($options) :
            $this->beforeAction($method, $options);
        }
    }

    // 初始化
    protected function initialize()
    {}

 

可以看到初始化的方法是位于构造函数内的,而构造函数是一个没有返回值的特殊函数,所以return是没用的,其实这个还涉及更深的一些原理,但是这里先不做讲解,直接说应该如何返回值。

 感兴趣的可以看看这个回答

https://stackoverflow.com/questions/11904255/constructor-returning-value/21099742

解决

我比较简单粗暴直接使用die()方法来返回,当然你也可以使用echo和exit或者die配合

die

/**
     * 初始化
     */
    public function initialize()
    {
        $this->_uid = $this->request->param('uid/d');
        if ($this->_uid) {
            // 访问者控制
            if (!$this->is_login() && !in_array($this->request->action(), array('login'))) {
                die('非法TOKEN登录,请求接口');
            }
        }
    }

 

echo

/**
     * 初始化
     */
    public function initialize()
    {
        $this->_uid = $this->request->param('uid/d');
        if ($this->_uid) {
            // 访问者控制
            if (!$this->is_login() && !in_array($this->request->action(), array('login'))) {
                echo '非法TOKEN登录,请求接口';
                die;
            }
        }
    }

 

转载于:https://www.cnblogs.com/wangyang0210/p/10818644.html

### 如何计算机器学习中的TP(真正例)、FP(假正例)和FN(假反例) 在评估分类模型性能时,混淆矩阵是一个重要的工具。该矩阵通过对比实际类别与预测类别来衡量模型的表现。具体来说: #### 定义 - **真正例 (True Positive, TP)** 是指模型正确预测为正类的实际正类样本数量[^1]。 - **假正例 (False Positive, FP)** 是指模型错误预测为正类的实际负类样本数量。 - **假负例 (False Negative, FN)** 是指模型错误预测为负类的实际正类样本数量。 #### 计算方法 对于给定的数据集,在应用分类器之后可以得到一系列的预测结果。根据这些预测结果相对于真实标签的情况,统计如下数值: - 对于每一个被正确识别出来的正向实例增加`TP`计数; - 如果一个原本属于负向类别的实例却被误判成了正向,则相应地增加`FP`的数量; - 当某个实际上应归属于正向类别的数据点却未被检测出来而被判作负面情况时,就应当提高`FN`数目。 下面给出一段Python代码用于展示如何基于已知的真实值列表和对应的预测值列表来获取上述三个参数的具体数值: ```python def calculate_confusion_matrix_elements(y_true, y_pred): """ Calculate elements of confusion matrix from true and predicted labels. Parameters: y_true : array-like of shape (n_samples,) True target values. y_pred : array-like of shape (n_samples,) Predicted targets as returned by classifier. Returns: tp : int Number of true positives. fp : int Number of false positives. fn : int Number of false negatives. """ # Initialize counters tp = sum((y_true == 1) & (y_pred == 1)) fp = sum((y_true == 0) & (y_pred == 1)) fn = sum((y_true == 1) & (y_pred == 0)) return tp, fp, fn ``` 此函数接收两个数组作为输入——一个是真实的标签序列 `y_true` ,另一个是由某些算法产生的预测标签序列 `y_pred` 。它返回的是这三个关键量:`tp`, `fp`, 和 `fn`.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值