4

按照本指南清理我的输入,我想知道这个是否包含空字符串?

$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');
4

1 回答 1

5

Joomla 不能决定您的空字符串是否为有效值。他们必须使用isset(),因为如果他们会使用empty()并且您返回'0'您所期望的正常值,Joomla 将返回默认值而不是'0'.

因此,他们只是isset()用来检查是否设置了变量是完全正常的,并且由您决定接受哪些值。

如果未设置该值,并且您将其设置为第二个参数 empty string '',则会返回一个空字符串。

在您的示例中,将返回一个空字符串,这是预期的行为。

于 2013-03-26T22:08:23.393 回答