# 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** со значениями из списка выше (обрабатываемые типы).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.johncms.com/master/obshie-svedeniya/validaciya/notempty-ne-pustoe-znachenie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
