FeipAPI/Mirzaev/Feip/Params/Foo.php

54 lines
1.3 KiB
PHP
Raw Normal View History

2020-10-02 21:11:19 +07:00
<?php
declare(strict_types=1);
namespace Mirzaev\Feip\Params;
use Mirzaev\Feip\Error;
/**
* Параметр foo
*
* @property int $foo foo
*
* @package Mirzaev\Params\Filters
* @author Арсен Мирзаев <red@hood.su>
*/
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;
}
}