У меня есть функция, которая вызывается снова и снова из моего кода, где я могу передать переменную, и функция действует по-разному, если параметр является «действительным» (int / float) числом (другими словами, не выполняет никаких манипуляций).и не добавляйте кавычки вокруг него при передаче в запрос MySQL).В настоящее время мой код выполняет двойную проверку типов, но есть ли лучший способ?
$a = 1;
$b = '1';
$is_num = (is_numeric($a) && !is_string($a)); //true
$is_num = (is_numeric($b) && !is_string($b)); //false
, есть ли лучший более быстрый способ сделать это?
например (ОЧЕНЬ упрощенная версия):
$query = 'SELECT * FROM `table` WHERE ';
$field = 'id';
$operator = '=';
$value = 2;
$query .= '`'.$field.'`'.$operator;
$is_num = (is_numeric($value) && !is_string($value));
if($is_num){
$query .=$value;
}else{
$query .='"'.mysql_real_escape_string((string)$value).'"';
}
$query .=';';