我已将条件分配到变量。然后我尝试将该变量作为 if 语句的参数。但是代码不起作用。请检查我的代码:
$a = 8;
$final_str = '$a == 10';
if($final_str) {
echo 'Output 1';
} else {
echo 'Output 2';
}
所需的输出应为输出2 。但它没有用。我总是看到输出1 。在这种情况下请帮助我。
提前致谢!
答案 0 :(得分:3)
根据您的要求,这里的真正问题是这行代码:
$final_str = '$a == 10';
虽然你已经说过你不能改变你想要的前两行代码,但我认为你的意图和结果是两回事。
你知道,你正在定义'$a == 10'
,它被字面解释为一个字符串值。
所以你正在尝试做类似的事情:
if ('some string') ...
这样做的结果是正确的,因为非空的字符串是真值。
我认为你的意图是测试变量$a
是否等于整数值10?
在这种情况下,您确实需要这样做:
$final_str = $a == 10;
根据变量$a
是否等于10,结果可能是真或假,那样if条件会反映出所需的结果吗?
编辑:
如果您尝试在字符串中动态创建一些PHP代码,则需要run it through eval,此处为more information relating to the usage。
编辑2:
我宁愿尝试将其重新分解为更像:
$thisPage = 8;
$truthyPages = array(10,20);
if (in_array($thisPage,$truthyPages)) {
echo 'positive output';
} else {
echo 'negative output';
}
或者甚至可能:
$a = 8;
// Step 1
$final_result = $final_result || $a == 10;
// Step 2
$final_result = $final_result || $a == 20;
if ($final_result) {
echo 'success';
} else {
echo 'failure';
}