Проверка Joomla для пустой строки с помощью JInput

Следуя этому руководству по дезинфекции моих материалов, мне интересно, покрыта ли пустая строка этим?

$jinput = JFactory::getApplication()->input; $this->name = $jinput->get('name', '', 'STRING'); 

Как правило, без Joomla я также проверял бы пустую строку. Что-то вроде:

 if (!empty($_POST['name'])) 

Если посмотреть на метод JInput get, я вижу, что он проверяет, is is isset :

 public function get($name, $default = null, $filter = 'cmd') { if (isset($this->data[$name])) { return $this->filter->clean($this->data[$name], $filter); } return $default; } 

Не то же самое, что и isset будет проверять только значение null. Однако это значение по умолчанию для использования метода get. Итак, если я укажу пустую строку для второго параметра, который я здесь рассмотрел?

 $this->name = $jinput->get('name', '', 'STRING'); 

Joomla не может решить, является ли ваша пустая строка допустимым значением или нет. Они должны использовать isset() , потому что если они будут использовать empty() и вы вернете '0' что вы ожидали бы как обычно, Joomla вернет значение по умолчанию вместо '0' .

Так что совершенно нормально, что они просто используют isset() чтобы проверить, установлена ​​ли переменная, и решать вам, какие значения вы принимаете.

Если значение не установлено, и вы задаете в качестве второго параметра пустую строку '' , вы получите пустую строку.

В вашем примере будет возвращена пустая строка, ожидаемое поведение.