您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php 字符串如何转换成if条件语句

2024/3/17 5:28:46发布16次查看
例如:$condition = 2 == 2 && 3 == 5;
            if ($condition) {
                echo 1;
            }
怎样把$condition 转换成if可识别的条件?直接这样判断会当成字符串常量,值为true
回复讨论(解决方案) if (eval(return $condition;)) {
$condition = 2=1 && (snb === snb || snb === hfu); if (eval(return $condition;)) { echo 1; }else { echo 2; }
eval() 可以解决纯数字的情况,字符串里有英文字母就会报错了,如果是上面的情况怎么办?
2=1 && (snb === snb || snb === hfu)
本身就不是合法的 php 条件表达式,不要说 eval,就是你直接写在 if 中都是要报错的
$condition = 2=1 && (snb === snb || snb === hfu); if (eval(return $condition;)) { echo 1; }else { echo 2; } if (2=1 && ('snb' === 'snb' || 'snb' === 'hfu')) { echo 3; }

呃 第一段的$condition和第二段if里面的内容是等价的吧 只是一个是字符串,一个是正常的if条件。
第二段运行没有问题的啊
第一段调用eval()会报一个常量未定义的错误,这里应该要转义?
$condition = 2=1 && (snb === snb || snb === hfu); if (eval(return $condition;)) { echo 1; }else { echo 2; } if (2=1 && ('snb' === 'snb' || 'snb' === 'hfu')) { echo 3; }

呃 第一段的$condition和第二段if里面的内容是等价的吧 只是一个是字符串,一个是正常的if条件。
第二段运行没有问题的啊
第一段调用eval()会报一个常量未定义的错误,这里应该要转义?
你的本意是('snb' === 'snb' || 'snb' === 'hfu') 但是 你却写成(snb === snb || snb === hfu) 连$符号都没有的变量,自然被理解成常量了,然而你并没有定义常量。
用变量转化一下,否则snb和hfu会被解释成常量。 $snb=snb;$hfu=hfu; $condition = '2=1 && ($snb === $snb || $snb === $hfu)'; if (eval(return $condition;)) { echo 1; }else { echo 2; }
呃 已经解决了 谢谢大神们
呃 已经解决了 谢谢大神们
那把贴子结了吧。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product