эхо внутри цикла if

У меня есть переменная вроде этого

$string = "0>0.1"; 

Я хочу оценить это внутри цикла if

 if($string) { ///something } 

но я получаю ошибку, если я это делаю. Как это сделать

вы не понимаете, как работают оценки или строки. Если вы поместите что-нибудь в строку, оно не будет оцениваться, а просто будет содержать это значение с этого момента.

 $string = "0>0.1"; // contains "0>0.1" $bool = 0>0.1; // contains TRUE 

Оператор IF требует логической, а не строки.

Вы можете использовать eval для оценки вещей в строках. Помните, что eval – это зло, и любой php-код может быть в нем.

У вас есть ужасный совет с вашим дубликатом. Вот более безопасный вариант, который будет фактически оценивать результат:

 $str = "0>0.1"; if (preg_replace('/^(\d+\.?\d*)([><])(\d+\.?\d*)$/e', "$1 $2 $3", $str)) { 

Обратите внимание, что он все равно вернет true для недопустимых строк, таких как "1>2b" . Для этого вам понадобится совпадение и отдельная оценка выражения. (Написание фальшивого мини-парсера здесь не сложно, но, очевидно, излишний для вашего вопроса.)