Page 1 sur 1

Améliorer du code

Posté : 28 mars 2008, 14:14
par agité
Bonjour,

je cherche a améliorer une partie de code que j'ai fais mais qui ne me semble pas optimum :
		// Parking autre n'est pas renseigné 
		if( empty($Array_Lots['Stationnement_autre']) )
		{
		 // Pour un appartement ou un duplex
		 if( $Array_Lots['Id_cat_prod_genre'] == ( 1 or 2 ) )
		 {
		  // Pour les parking interieur
		  if( $Array_Lots['Stationnement_type'] == ( 1 or 2 or 3 ) )
		  {
			 $Parking1 = $Array_Lots['Stationnement_num']; 
			 $Parking2 = NULL;
		  }
			// Pour les parking exterieurs 
			else if( $Array_Lots['Stationnement_type'] == 4 )
			{ 
			 $Parking2 = $Array_Lots['Stationnement_num']; 
			 $Parking1 = NULL;
		  }
		 }
		 //Pour les maisons
		 else if( $Array_Lots['Id_cat_prod_genre'] == 3 )
		 {
		 	// Pour les parking interieur
		  if( $Array_Lots['Stationnement_type'] == 1 )
		  {
			 $Parking1 = $Array_Lots['Stationnement_num']; 
			 $Parking2 = NULL;
		  }
			// Pour les parking exterieurs 
			else if( $Array_Lots['Stationnement_type'] == 2 )
			{ 
			 $Parking2 = $Array_Lots['Stationnement_num']; 
			 $Parking1 = NULL;
		  }	
		 }	
		}else{ 
		$Parking1= NULL; 
		$Parking2 = NULL; 
		}	


Pas possible de passer sur plusieurs switch imbriqués, donc j'ai fais une liste de if / else.

C'est assez simple au final mais je pense que ca peut être largement raccourcis.

Une idée ?

Posté : 28 mars 2008, 15:10
par Sékiltoyai
Tu sais, l'important, ce n'est pas avoir un code de 3 lignes, aussi court qu'un script perl. Le principal, c'est du code stable et performant.

Posté : 28 mars 2008, 15:11
par Sékiltoyai
Au passage, ce code ne te donnera pas le résultat escompté :
$Array_Lots['Stationnement_type'] == ( 1 or 2 or 3 )
Les 'or' ne sont pas corrects.

Posté : 28 mars 2008, 15:12
par Berzemus
Tout en évitant les boucles infinies.

Posté : 28 mars 2008, 15:41
par agité
Au passage, ce code ne te donnera pas le résultat escompté :
$Array_Lots['Stationnement_type'] == ( 1 or 2 or 3 )
Les 'or' ne sont pas corrects.
Il faudrait utiliser quel syntaxe ?

Et pour les boucles infinies je n'en vois pas ici.

Posté : 28 mars 2008, 16:07
par Sékiltoyai
bah
($var == 1) || ($var == 2) || ...

Posté : 28 mars 2008, 16:14
par agité
Oui voilà c'est ce que j'ai fais mais je pensais qu'il était possible de les regrouper, car comme SQL le permet je pensais que php pouvait utiliser la même syntaxe.

Merci pour vos réponses.

Posté : 28 mars 2008, 16:42
par Sékiltoyai
Oui voilà c'est ce que j'ai fais mais je pensais qu'il était possible de les regrouper, car comme SQL le permet
Non, plus :-/
En SQL, l'opérateur OR dans un tel contexte est un opérateur bit à bit, donc 1 or 2 or 3 est égal à 3 :
http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html