# -sanek- (31.10.2017 / 18:49)Не будет работать так.
КоханийВолодимир, If($count.$uslovie){}
# -sanek- (31.10.2017 / 18:49)Не будет работать так.
КоханийВолодимир, If($count.$uslovie){}
Макс, ему наверное eval() нужен.
if (eval("if(" . $i . $test . "){ return true; } else { return false; }")) {
echo 'Ojeh, kogda MobiCMS';
} else {
echo 'Nikogda!';
}# ДоХтор (31.10.2017 / 21:23)Да, такое через eval надо.
Макс, ему наверное eval() нужен.
Ну и надо бы упомянуть о самой функции
# КоханийВолодимир (31.10.2017 / 17:06)Т.к. вариант с eval() не безопасен, то я бы сделал поиск оператора (больше/меньше и т.п.) с помощью регулярки, и уже на основе найденного оператора выполнял бы действие (сравнение/прибавление и т.п.)
Всем ку. Очень интересный вопрос. Есть у меня таблица в которой есть условия по типу < 3 или == 1
А на стороне сереве надо обработать это условие, то есть записать условие в переменную и отработать е
<?php
$count = 2;
//$condt = ' < 3';
$condt = '== 1';
var_dump(execute($count, $condt)); // bool(false)
function operand($str) {
return (int)preg_replace('~\D+~', '', $str);
}
function operation($str) {
$operations = [
'+' => 1, '-' => 2, '*' => 3, '/' => 4, '>' => 5,
'<' => 6, '==' => 7, '!=' => 8, '>=' => 9, '<=' => 10
];
$op = preg_replace('~[\d\s]+~', '', $str);
return isset($operations[$op]) ? $operations[$op] : 0;
}
function execute($count, $condt) {
$operation = operation($condt);
$operand = operand($condt);
switch ($operation) {
case 1:
$result = $count + $operand;
break;
case 2:
$result = $count - $operand;
break;
case 3:
$result = $count * $operand;
break;
case 4:
$result = $count / $operand;
break;
case 5:
$result = $count > $operand;
break;
case 6:
$result = $count < $operand;
break;
case 7:
$result = $count == $operand;
break;
case 8:
$result = $count != $operand;
break;
case 9:
$result = $count >= $operand;
break;
case 10:
$result = $count <= $operand;
break;
default:
$result = null;
}
return $result;
}Спасибо за решения. Конечно евал не сильно хотелось бы реализовать, но для начала попробую его впихнуть, потом после удачи попытаюсь адаптировать код доктора. Благо у меня проект где не подгоняют)
Благо у меня проект где не подгоняют)У меня тоже - в шею никто не гонит, гг, по крайней мере, пока.
давно эта мысль у меня.
в общем есть таблица например table. так из нею нужно брать инфу из ячейки "nado" .
а именно вот так: мне нужно определить и записать у кого первое второе или третье место.
обычный селект order мне не подходит.
Serghei, в каком формате инфа из поля nado ?