如果条件的参数变为变量,如何应用?

时间:2018-03-18 15:43:20

标签: php

我已将条件分配到变量。然后我尝试将该变量作为 if 语句的参数。但是代码不起作用。请检查我的代码:

$a = 8;
$final_str = '$a == 10';

if($final_str) {
    echo 'Output 1';
} else {
    echo 'Output 2';
}

所需的输出应为输出2 。但它没有用。我总是看到输出1 。在这种情况下请帮助我。

提前致谢!

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';
}