Eval throwing exception Использование неопределенной константы в php

Я использую 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

Есть причина, по которой все говорят, что eval() это зло :-) Это опасно!

Qirel 25.02.2019 11:48

Что еще должен делать этот код? Что произойдет, если вы напишете так же просто, как return no != no?

Nico Haase 25.02.2019 12:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
332
1

Ответы 1

no должна быть переменной типа $no != $no, где $no должно иметь предопределенное значение, или это должна быть строка, как показано ниже:

$condition  = "'no' != 'no'";
echo eval("return $condition;");

Но обратите внимание, что вы никогда не должны использовать eval в любом случае, так как это действительно плохой вариант. Пожалуйста, избегайте этого, и вы можете использовать приведенный ниже код для достижения вашего требования:

return ('no' != 'no') ? false: true;

Надеюсь, это проясняет вас.

Другие вопросы по теме