54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?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;
|
||
}
|
||
}
|