Поместите условие IF в переменную

Есть ли способ поместить условия в переменную и затем использовать эту переменную в операторе if? Смотрите пример ниже:

$value1 = 10;
$value2 = 10;

$value_condition = '($value1 == $value2)';

if ($value_condition) {
echo 'It works!';
} else {
echo 'It doesnt work.';
}

Я понимаю, что это может быть странным вопросом. Я изучаю основы PHP.

1

Решение

Не нужно использовать строки. Используйте это прямо так:

$value1 = 10;
$value2 = 10;

$value_condition = ($value1 == $value2);

if ($value_condition) {
echo 'It works!';
} else {
echo 'It doesnt work.';
}

Или, чтобы оценить, вы можете использовать этот способ, используя ", поскольку он расширяет и оценивает переменные внутри { ... },

Я считаю, что это может сработать! Кроме того, используя eval() это зло! Поэтому убедитесь, что вы используете его в правильном месте, где вы уверены, что не может быть никакого другого входа в eval() функция!

2

Другие решения

== Оператор оценивает как логическое значение, так что вы можете сделать

$value1 = 10;
$value2 = 10;

$value_condition = ($value1 == $value2);

if ($value_condition) {
echo 'It works!';
} else {
echo 'It doesnt work.';
}
1

Просто присвойте результат сравнения переменной.

$value1 = 10;
$value2 = 10;

$value_condition = ($value1 == $value2);

if ($value_condition) {
echo 'It works!';
} else {
echo 'It doesnt work.';
}
1

if оператор проверяет логическое значение. Вы могли бы иметь что-то вроде этого:

if (true) {

Вы можете назначить логические значения переменной:

$boolValue = true;

Вы можете использовать переменные в вашем if заявление:

if ($boolValue) {
// true

В вашем примере:

$value_condition = $value1 == $value2; // $value_condition is now true or false
if ($value_condition) {
1

В зависимости от того, что вы пытаетесь сделать, анонимная функция мог бы помочь здесь.

$value1 = 10;
$value2 = 10;

$equals = function($a, $b) {
return $a == $b;
};

if ($equals($value1, $value2)) {
echo 'It works!';
} else {
echo 'It doesnt work.';
}

Тем не менее, я бы сделал это только так (а не с обычной функцией), когда вы используете use (),

1