I have a small issue with my script.
I\'m getting Strict Standards: Only variables should be passed by reference in
if( $checkDNS && ($domain = e
From the PHP manual:
This array is passed by reference because it is modified by the function. This means you must pass it a real variable and not a function returning an array because only actual variables may be passed by reference.
So you must use a variable in the end function:
$domain = explode('@',$email, 2);
if( $checkDNS && ($domain = end($domain)) )
From the manual:
mixed end ( array &$array )
end
takes the array by reference and move the internal pointer. Your array is the function output, so its unable to correctly modify the array by reference.
Like the message says, end expects a variable because its parameter is a reference.
But since PHP 5.4 you can dereference arrays like that:
$domain = explode('@',$email, 2)[1];
Assuming that $email always contains @
. You should assure that beforehand, otherwise end(...) would give you unexpected results too.