*/ trait Email { /** * Почта: параметр * * @var string */ protected string $email = ''; /** * Почта: фильтр * * @param string|int|float $target Значение для фильтрации * * @return string|null */ public static function email($target): ?string { // Очистка if ($sanitized = filter_var($target, FILTER_SANITIZE_EMAIL)) { // Если очищение вернуло результат // Проверка if ($sanitized !== $target || !preg_match("/[0-9A-z]+@[A-z]+\.[A-z]+/", $sanitized)) { // Если очищенное значение не совпадает с отправленным // или если не совпадает с паттерном "email" new Error(200, __FUNCTION__); } return (string) $sanitized; } else { new Error(200, __FUNCTION__); } return null; } }