Я использую функцию для очистки переменных в целях безопасности. Однако эта функция преобразует каждое значение в строковый тип данных, который я не хочу.Нежелательный тип в foreach
Так, например, когда входной параметр является целым типом данных, функция возвращает тип данных строки.
Любая идея, как вернуть тот же тип данных?
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...";
}
Ну, 'htmlspecialchars()' действительно возвращает строку, в самом деле. Функция не имеет никакого смысла при работе с целыми числами. Может быть, 'real_escape_string()' показывает то же поведение. Неясно, что делает этот метод. – arkascha