Я использую eval для принятия решения, используя строковое значение. Когда я пытаюсь сравнить две строки, возникает исключение Использование неопределенной константы. Пожалуйста, помогите кто-нибудь, что не так с этим.
$condition = "no != no";
echo eval("return $condition;");
бросая ошибку, как
Notice: Use of undefined constant no - assumed 'no' in index.php : eval()'d code on line 1
Что еще должен делать этот код? Что произойдет, если вы напишете так же просто, как return no != no?






no должна быть переменной типа $no != $no, где $no должно иметь предопределенное значение, или это должна быть строка, как показано ниже:
$condition = "'no' != 'no'";
echo eval("return $condition;");
Но обратите внимание, что вы никогда не должны использовать eval в любом случае, так как это действительно плохой вариант. Пожалуйста, избегайте этого, и вы можете использовать приведенный ниже код для достижения вашего требования:
return ('no' != 'no') ? false: true;
Надеюсь, это проясняет вас.
Есть причина, по которой все говорят, что
eval()это зло :-) Это опасно!