2012-02-22 3 views
0

J'ai un petit problème en ce qui concerne les arguments logiqueslogique if then else

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

Je l'ai traduit en code comme suit

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

Mais je me dis que ce n'est pas correct.

[UPDATE] - signifie null + signifie non nul

+3

a) qu'en est-il du cas où "année" n'est pas nulle? et b) votre question n'est pas claire - vous devriez expliquer comment traduire cette table car ce n'est pas évident ... – alfasin

+1

Aucune idée de ce que vous essayez d'accomplir ici, ou de ce qui ne fonctionne pas. Pouvez-vous élaborer sur votre question s'il vous plaît? – GordonM

+0

que signifie votre table? Il semble que les null, les plus et les moins sont tous des intrants. Quel devrait être votre résultat? – shift66

Répondre

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

Si vous voulez retourner null dans vos cas (par exemple si l'année est nul, le mois et le jour ne sont pas nuls (premier cas)) utilisez ce code. Parce que si j'ai bien compris votre question, lorsque l'année est nulle, vous voulez renvoyer null quand même, et quand ce n'est pas nul, vous voulez retourner null seulement si le mois est nul et le jour ne l'est pas.

0

@mesiesta - en fait, vous pouvez traduire toutes ces conditions dans:

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

la table ne quelques options « couvrir », l'un d'entre eux avons montré dans le code ci-dessus, les autres sont tous les les autres 3 options sont quand l'année n'est pas nulle