Test conditionnel

De Typo3 CMS / Documentation Typo3 / Support Typo3.

Pour effectuer un test conditionnel entre une constante et une variable ou une fonction et une variable, il faut pour des raisons de sécurité placer 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 toutes les données de la base de données
  }
 
  if($reset_database == foo()) 
  {
    reset_database() // Effacement de toutes les données de la base de données
  }

cette structure est déconseillée parce que si vous avez le malheur de faire une faute de frappe :

$reset_database = 'NON';
 
  if($reset_database = 'OUI') 
  {
    reset_database() // effacement de toutes les données de la base de données
  }  
 
  if($reset_database = foo()) 
  {
    reset_database() // effacement de toutes 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
  }

...PHP n'effacera pas notre base et nous retournera une jolie erreur fatale, qui nous permettra de nous rendre compte tout de suite de l'origine du 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 égal à false.


Formation Typo3 à Paris
Boite Oblady