2010-11-23 2 views
0

Я хотел бы определить, имеет ли переменная какой-либо текст вообще.
Например, мой текущий код заключается в следующем:Определить, имеет ли переменная какой-либо текст

if (is_numeric ($id)) 
{ 
    //do stuff 
} 
else 
{ 
    // do other stuff 
} 

Однако существует проблема, если моя переменная содержит как строку и номер
, такие, как «вы 93 лет»,
потому, что он видит, что число 93 присутствует и рассматривает переменную числовую.
Я хочу, чтобы оператор if выполнял только «делать вещи», если текст вообще отсутствует.

Благодаря

+3

Как функция возвращает true для этой строки? Вы пытались запустить код для этого значения, проверяете ли вы правильную переменную и т. Д.? Возможно, вам понадобится запустить больше тестов. – BoltClock 2010-11-23 04:59:11

+0

Извините, я не понимаю, что вы имеете в виду. Я уверен, что это правильная переменная. Кроме того, что вы имеете в виду, как он может вернуть истину? – Parker 2010-11-23 05:06:32

ответ

1

Попробуйте заливкой значение INT (или поплавок), а затем сравнить его обратно в неизмененном версии. Они должны совпадать со значениями (но не типа)

if((int)$id == $id) { 
} else { 
} 

другой вариант будет использовать preg_match("/^([\d.\-]+)$/", $id). Это позволит вам быть очень конкретным о том, какие символы вы позволяете содержать $ id. Однако с помощью регулярных выражений следует рассматривать как окончательный выбор (по соображениям производительности)

0
if(empty($var) && $var !== "0" && $var !== 0) { 
    // it's really empty, not a string "0" and not a numeric 0 
} 

Вы также можете проверить, если это не логическое false для полноты картины.

Смежные вопросы