首页 > 解决方案 > 如何检查条件是否在php中定义为变量?

问题描述

我有一个动态包含条件的变量,我需要检查该条件。例如,

$condition = '21 < 20';
if($condition){
    echo "yes";
    } else {
    echo "no";
    }

我想检查这个条件,但它总是返回“是”,因为条件变量有一些字符串。我如何才能真正检查 21 大于 20 的条件。任何人都可以通过这种问题吗?谢谢。

标签: phpif-statementconditional-statements

解决方案


直接来自 PHP.net

注意eval()语言结构非常危险,因为它允许执行任意 PHP 代码 。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

话虽如此,使用您的要求(和部分代码),您的结果将如下所示:

// Define the condition from the other function
$condition = '5>3';

// Grab the result of evaluating that condition
// VERY DANGEROUS IF YOU CANNOT TRUST THE INPUT
$result = eval('return ('.$condition.');');

// Execute a normal if statement check
if($result){ echo "yes";} else {echo "no";}

推荐阅读