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

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

0 голосов
/ 14 апреля 2011

У меня есть такая переменная

$string = "0>0.1";

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

if($string)
{
  ///something
}

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

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

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

1 голос
/ 14 апреля 2011

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

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

$bool = 0>0.1; // contains TRUE

Для оператора IF требуется логическое значение, а не строка.

0 голосов
/ 14 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...