确定变量是否包含任何文本

时间:2010-11-23 04:57:06

标签: php variables string-comparison

我想确定变量是否有任何文本。
例如,我目前的代码是:

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

但是,如果我的变量同时包含字符串和数字,则会出现问题 如“你是93岁”,
因为它看到数字93存在并认为变量数字 如果变量中根本没有文本,我希望if语句只能“做东西”。

由于

2 个答案:

答案 0 :(得分:1)

尝试将值转换为int(或float),然后将其与未更改的版本进行比较。它们应匹配值(但不是类型)

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

另一种选择是使用preg_match("/^([\d.\-]+)$/", $id)。这将允许您非常具体地说明您允许$ id包含的字符。但是,使用regexp应被视为最终选择(出于性能原因)

答案 1 :(得分:0)

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

为了完整起见,您还可以检查它是否不是布尔值false