Test conditionnel

De Typo3 CMS / Documentation Typo3 / Support Typo3.

Pour effectuer un test conditionnel entre une constant et une variable ou une fonction et une variable, il faut pour des raisons de sécurité placé la constante ou la fonction comme premier composant du test.


exemple de ce qu'il ne faut pas faire :

$reset_database = 'NON';
 
  if($reset_database == 'OUI') 
  {
    reset_database() // effacement de toute les données de la base de données
  }  
  if($reset_database == foo()) 
  {
    reset_database() // effacement de toute les données de la base de données
  }

cette structure est déconseillé parce que si vous avez le malheur de faire une faute de frappe qui donne ceci

$reset_database = 'NON';
 
  if($reset_database = 'OUI') 
  {
    reset_database() // effacement de toute les données de la base de données
  }  
 
  if($reset_database = foo()) 
  {
    reset_database() // effacement de toute les données de la base de données
  }

vous pouvez dire adieu au contenu de votre base de données

La bonne structure est

$reset_database = 'NON';
 
  if('OUI'== $reset_database) 
  {
    reset_database() // effacement de toute les données de la base de données
  }  
 
  if(foo() == $reset_database) 
  {
    reset_database() // effacement de toute les données de la base de données
  }

car même si l'on fait la même erreur de frappe

$reset_database = 'NON';
 
  if('OUI'= $reset_database) 
  {
    reset_database() // effacement de toute les données de la base de données
  }  
 
  if(foo()= $reset_database) 
  {
    reset_database() // effacement de toute les données de la base de données
  }

et bien PHP n'effacera pas notre base et nous retournera une jolie erreur fatale, qui nous permettra de nous rendre compte tout de suite d'ou viens le problème.


de même il est préférable d'écrire dans une boucle while quelque chose dans le genre

$reset_database = 'NON';
 
  while(false !== ($maVar = mysql_fetch_object($query_result))
  {
    // do something
  }

afin de s'assurer que le contenu de $maVar soit bien égale a false.

Outils personnels