加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:检查整数是否在某个间隔内

发布时间:2020-12-13 13:28:10 所属栏目:PHP教程 来源:网络整理
导读:我目前正致力于一个小型在线游戏的成就系统.成就实体基本上有4个属性: id 赢了 赢了 进步 最后一个应该是百分比,意思是0到100之间的数字.为了确保数据库中没有保存大于100或小于0的数字,我的setter方法看起来如下(我正在使用Symfony2 / Doctrine ORM): pub
我目前正致力于一个小型在线游戏的成就系统.成就实体基本上有4个属性:

> id
>赢了
>赢了
>进步

最后一个应该是百分比,意思是0到100之间的数字.为了确保数据库中没有保存大于100或小于0的数字,我的setter方法看起来如下(我正在使用Symfony2 / Doctrine ORM):

public function setProgress($progress)
    {
        $this->progress = max(min($progress,100),0);

        return $this;
    }

这里重要的一行是max(min($progress,0).

它工作得很好,我只是想问一下,如果PHP中有另一个内置函数正在做那件事,如果我正在做的事情是好的(关于良好的开发风格)

您应该考虑从Symfony2的 the validation component中为您的实体添加一些约束.
use SymfonyComponentValidatorConstraints as Assert;

class Achievement
{
   /**
    * @AssertRange(min=0,max=100)
    */
    protected progress;
}

例如,验证表单时会自动调用验证器服务,但您甚至可以通过获取验证器服务(例如在控制器中)手动调用它.

$achievement = new Achievement();
$errors = $this->get('validator')->validate($achievement);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读