*/ trait Foo { /** * foo: параметр * * @var int */ protected int $foo = 0; /** * foo: фильтр * * @param string|int|float $target Значение для фильтрации * * @return int|null */ public static function foo($target): ?int { // Очистка if ($sanitized = filter_var($target, FILTER_SANITIZE_NUMBER_INT)) { // Если очищение вернуло результат // Проверка if ($sanitized !== $target || !filter_var($sanitized, FILTER_VALIDATE_INT)) { // Если очищенное значение не совпадает с отправленным // или если не прошло проверку FILTER_VALIDATE_INT (но её невозможно не пройти здесь, просто так добавил) new Error(200, __FUNCTION__); } return (int) $sanitized; } else { new Error(200, __FUNCTION__); } return null; } }