按照这个 guide 来清理我的输入,我想知道是否有一个空字符串被这个覆盖?
$jinput = JFactory::getApplication()->input;
$this->name = $jinput->get('name', '', 'STRING');
通常没有 Joomla,我也会检查空字符串。就像是:
if (!empty($_POST['name']))
查看 JInput get 方法,我看到它检查它是否是
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()
来检查是否设置了变量是完全正常的,由你决定你接受什么值。
如果未设置该值,并且您将空字符串 ''
设置为第二个参数,则会返回一个空字符串。
在您的示例中,将返回一个空字符串,这是预期的行为。
关于php - Joomla 使用 JInput 检查空字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15647545/