为了安全起见,我正在使用一个函数来清理变量。但是,此函数将每个值转换为字符串数据类型,这是我不想要的。
因此,在示例中,当输入参数是整数数据类型时,函数将返回字符串数据类型。
任何想法如何返回完全相同的数据类型?
public function cleanInput($value)
{
if (is_array($value))
{
$newVal = '';
foreach($value as $field => $value)
{
$newVal[$field] = $this->link->real_escape_string($value);
}
}
else
{
$newVal = $this->link->real_escape_string(trim(htmlspecialchars($value)));
}
return $newVal;
}
// In example
$oldData = 20; // input is integer
$newData = cleanInput($oldData); // output should still be integer
if (is_int($newData))
{
echo "Working!";
}
else
{
echo "Not working...";
}
正如arkascha所说,htmlspecialchars和real_escape_string都返回字符串,这在两者的功能中都有某种暗示。
如果您想要int,float ect并返回原始数据类型,则只需要对它们执行清除即可。无论如何,尝试转义数字类型实际上没有任何意义。
else if (!is_string($value))
{
return $value;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句