2012-02-22 2 views
0

У меня есть небольшая проблема относительно логических аргументовлогика, если потом еще

Year month day 
null +  + 
null -  + 
null +  - 
nonnull -  + 

Я перевел его в код следующим образом

if($year==null) 
    { 
     if($day!=null && $month!=null) 
     { 
      return null; 
     } 
     elseif($month!=null || $day!=null) 
     { 
      return null;    
     }    
    } 

Но скажите мне, что это не правильно.

[UPDATE] - означает нуль + означает ненулевой

+3

a) а как насчет случая, когда «год» не является нулевым? и b) ваш вопрос непонятен - вы должны объяснить, как вы переводите эту таблицу как не очевидную ... – alfasin

+1

Не знаю, что вы пытаетесь сделать здесь, или что не работает. Можете ли вы подробно рассказать о своем вопросе? – GordonM

+0

что означает ваш стол? Кажется, что нули, плюсы и минусы - все входы. Каким должен быть ваш выход? – shift66

ответ

0
if($year==null || ($day!=null && $month==null)) 
{ 
    reurn null;  
} 

Если вы хотите возвратить нуль в ваших случаях (например, если год является недействительным, месяц и день не нулевые (первый случай)) используйте этот код. Поскольку, если я правильно понял ваш вопрос, когда год равен нулю, вы все равно хотите вернуть null, а когда он не является нулевым, вы хотите вернуть null, только если месяц равен нулю, а день - нет.

0

@mesiesta - на самом деле вы можете перевести все эти условия в:

if ($year==null) { 
if ($day==null && $month==null) { 
    return "undefined"; 
} 
else { 
    return null; 
} 

таблица не «покрывает» несколько вариантов, один из них я показал в коде выше, другой являются все другие 3 варианта, когда год не является нулевым.

Смежные вопросы