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;
}

issetnullをチェックするだけなので、同じことではありません。ただし、これはgetメソッドを使用するためのデフォルト値です。したがって、2番目のパラメーターに空の文字列を指定した場合、ここで説明しますか?

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

1 に答える 1

5

空の文字列が有効な値であるかどうかを判断するのはJoomlaの責任ではありません。彼らはを使用する必要がありますisset()。なぜなら、彼らが使用し、通常どおりに期待するものを返す場合、Joomlaはその代わりにデフォルト値を返すからempty()です。'0''0'

したがってisset()、変数が設定されているかどうかを確認するために使用するのは完全に正常であり、受け入れる値を決定するのはあなた次第です。

値が設定されておらず、2番目のパラメータとして空の文字列を設定すると''、空の文字列が返されます。

あなたの例では、空の文字列が返されますが、これは予想される動作です。

于 2013-03-26T22:08:23.393 に答える