У меня небольшая проблема с моим скриптом.
Я получаю строгие стандарты: только переменные должны передаваться по ссылке в
if( $checkDNS && ($domain = end(explode('@',$email, 2))) )
Из руководства по PHP :
Этот массив передается по ссылке, потому что он модифицируется функцией. Это означает, что вы должны передать ему реальную переменную, а не функцию, возвращающую массив, потому что только фактические переменные могут передаваться по ссылке.
Таким образом, вы должны использовать переменную в конце функции:
$domain = explode('@',$email, 2); if( $checkDNS && ($domain = end($domain)) )
Из руководства:
mixed end ( array &$array )
end
берет массив по ссылке и перемещает внутренний указатель. Ваш массив – это выход функции, поэтому он не может правильно изменить массив по ссылке.
Как говорится в сообщении, end ожидает переменную, потому что ее параметр является ссылкой.
Но поскольку PHP 5.4 вы можете разыменовывать массивы следующим образом:
$domain = explode('@',$email, 2)[1];
Предполагая, что $ email всегда содержит @
. Вы должны заверить, что заранее, иначе конец (…) также даст вам неожиданные результаты.