检查用户是否在一定年龄内返回true的功能,何时返回false

时间:2018-08-15 08:42:58

标签: laravel laravel-5

我有一个功能,可以根据给定的出生日期检查用户的年龄。这是我的用户模型。

出生日期是1995-02-23

public function age()
    {
        return $this->date_of_birth->diffInYears(\Carbon\Carbon::now());
    }

当我对某个用户进行修补时,我得到了正确的年龄。 23。

我还具有检查用户年龄的功能,以确定他们可以访问网站的哪个部分。

public function Youth(){
  if($this->age() == 16 || 17){
    return true;
  } else {
    return false;
  }
}

对于上面的用户,当用户年龄为23岁时,该用户应该返回false时,这将返回true。

3 个答案:

答案 0 :(得分:2)

是的,您没有将17与任何事物进行比较。试试:

if($this->age() == 16 || $this->age() == 17) {

当前,您只是在检查“年龄是16岁还是 true ”。这是因为仅对17的条件检查将始终评估为true(因为它是肯定的)。

答案 1 :(得分:1)

   public function Youth(){
      if($this->age() == 16 || $this->age() == 17){
        return true;
      } else {
        return false;
      }
    }

答案 2 :(得分:0)

布尔值运算符不能像您正在执行的那样工作。 即使在检查同一变量时,我们也需要以不同的方式指定OR条件

示例:

if($this->age() == 16 || 17){

这是使用||指定OR条件的错误方法运算符

相反

if($this->age() == 16 || $this->age() == 17){

您应该在上面的代码中使用完全不同的方式指定条件。