Как проверить, определено ли условие как переменная в php? - PullRequest
1 голос
/ 24 мая 2019

У меня есть одна переменная, которая содержит условие динамически, и мне нужно проверить это условие.Например,

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

Я хочу проверить это условие, но оно всегда возвращает «да», потому что переменная условия имеет некоторую строку.Как я могу на самом деле проверить условие, что 21 больше 20. Может ли кто-нибудь пройти через такого рода проблемы?Спасибо.

1 Ответ

1 голос
/ 24 мая 2019

Straight from 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";}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...