\$\begingroup\$
\$\endgroup\$
This function checks these 6 fields for a user profile to determine if they have "completed" their profile. This just feels like it could be done better, but I can't figure how.
/**
* Is the user's entire profile filled in?
*
* @return boolean
*/
public function isProfileComplete()
{
$checkList = [
$this->isAddressGiven(),
$this->isGenderSelected(),
null !== $this->getFirstName(),
null !== $this->getLastName(),
null !== $this->getJobTitle(),
null !== $this->getAboutMe(),
];
// If any one of the checks fails, profile is missing information
foreach ($checkList as $checkItem) {
if (!$checkItem) {
return false;
}
}
return true;
}
Jamal
35.2k13 gold badges134 silver badges238 bronze badges
1 Answer 1
\$\begingroup\$
\$\endgroup\$
There's no sense in creating a dynamic array for a fixed set of checks. Just put them in a single boolean expression.
public function isProfileComplete()
{
return $this->isAddressGiven()
&& $this->isGenderSelected()
&& null !== $this->getFirstName()
&& null !== $this->getLastName()
&& null !== $this->getJobTitle()
&& null !== $this->getAboutMe()
;
}
lang-php