php - 如何检查条件是否在php中定义为变量?
问题描述
我有一个动态包含条件的变量,我需要检查该条件。例如,
$condition = '21 < 20';
if($condition){
echo "yes";
} else {
echo "no";
}
我想检查这个条件,但它总是返回“是”,因为条件变量有一些字符串。我如何才能真正检查 21 大于 20 的条件。任何人都可以通过这种问题吗?谢谢。
解决方案
直接来自 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";}
推荐阅读
- sprite-kit - 如何调试 SpriteKit 部队
- php - 获取在 docker 容器中运行的 New Relic
- python - 从python中的数据框中删除异常值
- .net - 我可以使用一个以 .NET Framework 为目标的项目作为另一个以 .NET Core 为目标的项目的依赖项吗?
- android - Firebase,getValue被注释为可空登录
- javascript - 如何在 [Angular 10] 中使用基于用户角色的 AuthGuard 保护路由安全
- r - 映射纬度/经度值的每个组合并将距离存储在矩阵中
- bitbucket - 如何指定标签名称是 stash rest api
- flutter - 使用 Flutter Web 将图像上传到服务器
- javascript - 在 javascript/react/css 中的点之间绘制路径