我有一个功能,可以根据给定的出生日期检查用户的年龄。这是我的用户模型。
出生日期是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。
答案 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){
您应该在上面的代码中使用完全不同的方式指定条件。