如果循环,则在内部回显

| 我有一个像这样的变量
$string = \"0>0.1\";
我想在这样的if循环中求值
if($string)
{
  ///something
}
但是,如果我这样做,即时通讯会收到错误。如何去做     
已邀请:
您不了解评估或字符串的工作方式。 如果将任何内容放在字符串中,则不会对其进行评估,而仅从此刻起就包含该值。
$string = \"0>0.1\"; // contains \"0>0.1\"

$bool = 0>0.1; // contains TRUE
IF语句需要一个布尔值,而不是一个字符串。     
您可以使用
eval
评估字符串中的值。请记住,
eval
是邪恶的,其中可能包含任何php代码。     
您的重复副本给您一些可怕的建议。这里是一个更安全的评估变量,它将实际评估为结果:
$str = \"0>0.1\";
if (preg_replace(\'/^(\\d+\\.?\\d*)([><])(\\d+\\.?\\d*)$/e\', \"$1 $2 $3\", $str))
{
请注意,对于无效字符串(如
\"1>2b\"
),它仍将返回true。为此,您将需要一个匹配项和一个单独的表达式求值。 (在这里编写一个人造的迷你解析器并不困难,但是显然对您的问题而言过于矫kill过正。)     

要回复问题请先登录注册