Depuis l’apparition d’ORDA, de classes et d’autres objets, vous devez travailler de plus en plus avec des valeurs non définies.
Puisque certains d’entre vous demandent une façon plus facile de les utiliser, à partir de la v20, vous pouvez comparer n’importe quel type de valeur à une valeur non définie sans générer d’erreur.
Habituellement, dans 4D, les opérateurs de comparaison =, #, >, <, >= et <= vérifient le type et la valeur de chaque opérande. Si les types des deux opérandes sont différents, la comparaison génère une erreur :
Comme nous l’avons déjà mentionné, nous comprenons que lorsque vous travaillez avec des classes et des objets, vous devez travailler avec des valeurs non définies, c’est pourquoi nous avons assoupli cette règle. À partir de la version 20, vous pouvez comparer des valeurs non définies avec tous les types de variables :
- La comparaison = renvoie un résultat vrai lorsque vous comparez une variable non définie avec une valeur nulle ou non définie, et un résultat faux dans tous les autres cas :
$o:=new object
If ($o.undefined =10)
...
else
// returns false because $o.undefined is undefined
...
End if
- La comparaison # renvoie un résultat faux lorsque vous comparez une variable non définie à une valeur nulle ou non définie et un résultat vrai dans tous les autres cas :
$o:=new object
If ($o.undefined #10)
// returns true because $o.undefined is undefined
...
else
...
End if
- Les comparaisons>, <, >= et <= renvoient false pour toutes les comparaisons entre une variable non définie et une valeur scalaire (numérique, texte, date, heure, booléen). Comme la comparaison n’a pas de sens, 4D renvoie une erreur pour les autres types.
$o:=new object
If ($o.undefined >10)
...
else
// returns false because $o.undefined is undefined
...
End if
Consultez la documentation pour plus de détails !