2010-07-22 6 views
3

A l'intérieur du début d'une fonction que j'ai ceci:Pourquoi (Si false renvoie "true") ... retourne true?

if(false); 
{ 
    return 'TRUE'; 
} 

il retourne "TRUE"! Évidemment, mon vrai usage était de vérifier une expression plus utile et de retourner quelque chose d'autre. Je l'ai juste changé à ceci pour élaborer mon point.

Pourquoi cela se produit-il? Pouvez-vous ne pas mettre un retour dans une instruction if? Je le fais tout le temps dans d'autres langues.

Par exemple

au lieu de ceci:

function() { 
if(something) 
{ 
//process stuff 
} 
} 

qui nécessite wraping everthing l'intérieur de la fonction à l'intérieur d'un si.

Je préfère le faire:

function() { 
if(!something) 
return; 
//process stuff 
} 

est-ce pas OK dans PHP ... est-il un travail autour?

Répondre

20

Vous êtes juste fou. :)

if(false); // <----- remove semi colon 
{ 
    return 'TRUE'; 
} 

devrait avoir un point virgule de moins.

if(false) 
{ 
    return 'TRUE'; 
} 
+3

Wow, je me sens comme un âne maintenant. Ça a été une très longue journée ... mais j'aurais dû voir ça avant de poster. –

+1

+1 pour repérer une erreur qui peut facilement manger des heures presque instantanément. Eh bien, peut-être que cela devient une habitude de chercher des points-virgules en face de ce genre de bug ... – delnan

+1

si cela est censé être un [booléen] (http://de2.php.net/manual/fr/language.types. boolean.php), il devrait lire 'TRUE', sans le' '' – Gordon

8

Vous avez un point-virgule supplémentaire après la condition if.

Questions connexes