ProDomainer.ru - Клуб Домейнеров  
     

Войти через OpenID
Left Nav Справка ПортфолиоАукцион (39) Календарь Поиск Сообщения за день Все разделы прочитаны Right Nav

Left Container Right Container
 
Старый 30.05.2010, 20:41   #1
Член Клуба ProDomainer.ru
 

eval или не eval?

PHP код:
$firstVar 5;
$secondVar 10;
$condition "=="
Из этих переменных нужно получить следущее:
PHP код:
if (== 10) {
//.....

Неужели только через eval?


VaseninM вне форума   Ответить с цитированием
Старый 30.05.2010, 20:44   #2
Член Клуба ProDomainer.ru
 

$condition имеет ограниченное количество вариантов.
я бы сделал свитч по $condition

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 30.05.2010, 20:50   #3
Член Клуба ProDomainer.ru
 

на данный момент я тожесклняюсь к свичу. ибо пока всего 4 варианта.


VaseninM вне форума   Ответить с цитированием
Старый 30.05.2010, 20:53   #4
Член Клуба ProDomainer.ru
 

да хоть 84.
усложнение при этом незначительное. Все равно тебе нужно будет фильтровать евал... нафиг, нафиг...

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 30.05.2010, 21:55   #5
Член Клуба ProDomainer.ru
 

+10
eval нафиг свич рулит в данном случае
Burzuy вне форума   Ответить с цитированием
Старый 30.05.2010, 21:57   #6
Член Клуба ProDomainer.ru
 

PHP код:
              switch ($condition) {
                  case 
'==':
                      
$testResult $firstVar == $secondVar;
                      break;
                      
                  case 
'!=':
                      
$testResult $firstVar != $secondVar;
                      break;
                      
                  case 
'>=':
                      
$testResult $firstVar >= $secondVar;
                      break;
                      
                  case 
'<=':
                      
$testResult $firstVar <= $secondVar;
                      break;

                  case 
'>':
                      
$testResult $firstVar $secondVar;
                      break;
                      
                  case 
'<':
                      
$testResult $firstVar $secondVar;
                      break;
                  
                  default:
                      return 
false
                }
                if (
$testResult) {      
                    
$finalContent $trueResult;
                } else {
                    
$finalContent $falseResult;
                } 


VaseninM вне форума   Ответить с цитированием
Старый 30.05.2010, 22:09   #7
Член Клуба ProDomainer.ru
 

Угу... только я бы в скобки брал условие для читабельности:
PHP код:
$testResult = ($firstVar == $secondVar); 

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 30.05.2010, 22:14   #8
Член Клуба ProDomainer.ru
 

Пожалуй ты прав.


VaseninM вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
Быстрый переход


Часовой пояс GMT +4, время: 02:44.