I'm struggling with a simple function that loops through an array and returns true
only if it finds a given substring in one of the array's elements.
For some reason, I'm ALWAYS getting false
... even when the $email
parameter is contains one of the valid domains. Ex: scoobydoo@domain1.com
.
function check_email($email) {
$whitelist_domains = array(
'@domain1.com',
'@domain2.com',
'@domain3.com'
);
$output = FALSE;
foreach ($whitelist_domains as $domain) {
$pos = strpos( $email, $domain );
if ( $pos ) {
$output = TRUE;
}
}
return $output;
}
you are not breaking the loop if you find the domain, so what you are getting is actually the result for the LAST string checked only.
just add break;
after $output = TRUE;