スクリプトに小さな問題があります。
私は厳格な基準を取得しています:変数のみが参照によって渡されるべきです
if( $checkDNS && ($domain = end(explode('@',$email, 2))) )
スクリプトに小さな問題があります。
私は厳格な基準を取得しています:変数のみが参照によって渡されるべきです
if( $checkDNS && ($domain = end(explode('@',$email, 2))) )
PHPマニュアルから:
この配列は関数によって変更されるため、参照によって渡されます。これは、実際の変数のみが参照によって渡される可能性があるため、配列を返す関数ではなく、実際の変数を渡す必要があることを意味します。
したがって、 end 関数で変数を使用する必要があります。
$domain = explode('@',$email, 2);
if( $checkDNS && ($domain = end($domain)) )
マニュアルから:
mixed end ( array &$array )
end
参照によって配列を取得し、内部ポインターを移動します。あなたの配列は関数の出力であるため、参照によって配列を正しく変更することはできません。
メッセージが示すように、パラメーターは参照であるため、 end には変数が必要です。
しかし、PHP 5.4 以降では、次のように配列を逆参照できます。
$domain = explode('@',$email, 2)[1];
$email には常に@
. そうしないと、 end(...) によって予期しない結果が生じる可能性があります。