Я знаю какой тип переменной $value
должно быть. Должен is_numeric()
использоваться, чтобы проверить, является ли это строкой с плавающей точкой?
private function sanitize($value, $type) {
switch($type) {
case 'boolean':
if(!is_bool($value)) $value=filter_var($value, FILTER_VALIDATE_BOOLEAN);
break;
case 'integer':
if(ctype_digit($value)) $value=(int)$value;
break;
case 'float':
if(is_numeric($value) && !is_float($value)) $value=(float)$value;
break;
//case 'string':case 'object':case 'array': //Not sanitized
}
return $value;
}
Задача ещё не решена.
Других решений пока нет …