Пожалуйста, исправьте меня, если я ошибаюсь, но из вашего кода выше, когда вы оцениваете строку $ condition, вы возвращаете ее обратно в условие $. Если ваш оцененный код не имеет «return» в нем, он вернет null (reff: http://php.net/manual/en/function.eval.php).
Но ваша проблема в том, что вы действительно используете прокси-приложение «on». Когда вы используете «, чтобы обернуть строку (-ы) на php, она изменит каждую переменную в этой строке на значение, определенное для этой переменной выше этого кода.
Итак, вместо того, чтобы ваш код оценивался по php, вы фактически отправляете неправильный код в eval().
текущее состояние $ код:
if(HD<>'99' && HD<>'XX' && HD<>'XM' && HD<> 'XD' && HD<> 'XY' && HD<> 'XE') { echo 'YES'; } else { echo 'NO'; }
и что вы пытаетесь для того чтобы достигнуть это:
if($status<>"99" && $status<>"XX" && $status<>"XM" && $status<> "XD" && $status<> "XY" && $status<> "XE") { echo "YES"; } else { echo "NO"; }
Пожалуйста, измените "на 'так как строка (s) завернуть в' будет как это (если вы хотите поместить 'внутри него, пожалуйста, спасся его с помощью обратной косой черты (\)) и посмотреть, что произойдет
моя работа вокруг:.
$status = "HD";
$vari = "XX";
$condition = 'if($status<>"99" && $status<>"XX" && $status<>"XM" && $status<> "XD" && $status<> "XY" && $status<> "XE") { echo "YES"; } else { echo "NO"; }';
eval($condition);
echo $condition;
echo "<hr>";
$resp = str_replace('status','vari',$condition);
eval($resp);
Если вам нужно использовать 'eval', то у вас есть серьезные проблемы –
Пожалуйста, не ТИП ВАШИ ВОПРОСЫ В ВСЕХ КАПС. Трудно читать, это не поможет вам раньше, и это раздражает. (Это также считается SHOUTING, что грубо.) Спасибо. –
Ваше второе «$ condition =» изменяет значение условия. Поскольку ваше утверждение ничего не возвращает, условие $ будет равно null. Таким образом, $ resp является str_replace на null. Это все равно null. – kainaw