在if循环中回显

时间:2011-04-14 12:20:48

标签: php if-statement

我有一个像这样的变量

$string = "0>0.1";

我想在像这样的if循环中评估这个

if($string)
{
  ///something
}

但如果我这样做,我会收到错误。怎么去呢

3 个答案:

答案 0 :(得分:1)

您不了解评估或字符串的工作原理。 如果你在字符串中放置任何东西,它将不会被评估,但只是从那一刻开始包含该值。

$string = "0>0.1"; // contains "0>0.1"

$bool = 0>0.1; // contains TRUE

IF语句需要布尔值,而不是字符串。

答案 1 :(得分:1)

您可以使用eval来评估字符串中的内容。请记住,eval是邪恶的,任何PHP代码都可能在其中。

答案 2 :(得分:0)

你的副本有一些糟​​糕的建议。这是一个更安全的eval变体,它实际上会评估结果:

$str = "0>0.1";
if (preg_replace('/^(\d+\.?\d*)([><])(\d+\.?\d*)$/e', "$1 $2 $3", $str))
{

请注意,对于"1>2b"等无效字符串,它仍然会返回true。你需要一个匹配和一个单独的表达式评估。 (在这里写一个虚拟迷你解析器并不困难,但显然对你的问题有点过分了。)