我想确定变量是否有任何文本。
例如,我目前的代码是:
if (is_numeric ($id))
{
//do stuff
}
else
{
// do other stuff
}
但是,如果我的变量同时包含字符串和数字,则会出现问题
如“你是93岁”,
因为它看到数字93存在并认为变量数字
如果变量中根本没有文本,我希望if语句只能“做东西”。
由于
答案 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
。