Yii 标签模型中的“8+(int)”是什么意思?

What does "8+(int)" in Yii Tag Model mean?

我知道 (int) 是什么意思,但这是我第一次看到 (int) 被这样使用,我不知道它是什么意思。它来自Tag模型中的这段代码。

public function findTagWeights($limit=20)
    {
        $models=$this->findAll(array(
            'order'=>'frequency DESC',
            'limit'=>$limit,
        ));

        $total=0;
        foreach($models as $model)
            $total+=$model->frequency;

        $tags=array();
        if($total>0)
        {
            foreach($models as $model)
                $tags[$model->name]=8+(int)(16*$model->frequency/($total+10));
            ksort($tags);
        }
        return $tags;
    }

因为这部分我很困惑

8+(int)(16*$model->frequency/($total+10))

有人可以帮我吗?

这仅表示 (16*$model->frequency/($total+10)) 的结果在添加到 8 之前应转换为 int,仅此而已。

这里举个例子说明一下

echo 8 + (int)(2.5+2);   // 12 instead of 12.5

这会删除所有可能的分数,并在每种情况下 returns 一个整数。

(int) casts 数字,在它之后,为整数。

8 + (int)(16 * $model->frequency / ($total + 10));

等同于:

8 + intval(16 * $model->frequency / ($total + 10));