# NotEmpty - Не пустое значение

Этот валидатор позволяет вам проверить, является ли данное значение не пустым. Это часто полезно при работе с элементами формы или другим пользовательским вводом. Вы можете использовать этот валидатор, чтобы убедиться, что пользователь заполнил поле и оно не пустое.

По умолчанию этот валидатор работает иначе, чем вы ожидаете, работая с PHP функцией empty(). В частности, этот валидатор будет оценивать как целое число 0, так и строку «0» как пустые.

Вам может не подойти это поведение и, например, в вашем случае 0 не должен считаться пустым. Для таких случаев в валидаторе NotEmpty вы можете задать некоторые настройки.

### Поддерживаемые параметры

* **type**: Устанавливает тип проверки, которая будет выполнена.

### Обрабатываемые типы

* **boolean**: Возвращает false, когда логическое значение равно false.
* **integer**: Возвращает false, когда задано целое число 0. По умолчанию эта проверка не активирована и возвращает true для любых целочисленных значений.
* **float**: Возвращает false, когда задано значение с плавающей запятой 0.0. По умолчанию эта проверка не активирована и возвращает true для любых значений с плавающей запятой.
* **string**: Возвращает false, когда задана пустая строка.
* **zero**: Возвращает false, когда задан один символ ноль ('0').
* **empty\_array**: Возвращает false, когда задан пустой массив.
* **null**: Возвращает false, когда задано значение null.
* **php**: Возвращает false везде, где PHP empty () возвращает true.
* **space**: Возвращает false, если задана строка, содержащая только пробел.
* **object**: Возвращает true. false будет возвращено, когда объект не разрешен, но объект задан.
* **object\_string**: Возвращает false, когда объект задан, а его метод \_\_toString () возвращает пустую строку.
* **object\_count**: Возвращает false, когда объект задан, он реализует Countable, и его количество равно 0.
* **all**: Возвращает false для всех вышеперечисленных типов.

Рассмотрим пример как передавать эти параметры в валидатор.

### Примеры использования

```php
// Массив полей и значений
$data = [
    'test' => 0,
];

// Настройки валидатора
$rules = [
    'test' => [
        'NotEmpty' => [
            'type' => [
                'integer',
                'zero',
            ],
        ],
    ],
];

// Валидация
$validator = new \Johncms\Validator\Validator($data, $rules);
if ($validator->isValid()) {
    echo 'OK';
} else {
    d($validator->getErrors());
}
```

Как видите, для валидатора **NotEmpty** задан массив настроек, в нем передается параметр **type** со значениями из списка выше (обрабатываемые типы).
