Undefined
Undefined ( expression ) -> Résultat
Paramètre | Type | Description | |
---|---|---|---|
expression | Expression | → | Expression à tester |
Résultat | Boolean | ← | Vrai = Variable actuellement indéfinie Faux = Variable actuellement définie |
Description
La commande Undefined retourne Vrai si le résultat de l'évaluation d'expression n'est pas une valeur définie, sinon elle retourne Faux si expression a été définie.
- Une variable est définie si elle a été créée via une directive de compilation ou si une valeur lui a été assignée. Elle est indéfinie dans tous les autres cas. Si la base de données a été compilée, la fonction Undefined retourne Faux pour toutes les variables.
- Une propriété d'objet est indéfinie si elle n'existe pas dans l'objet.
- La commande Undefined retourne toujours Faux pour les champs.
Note : A noter que Undefined évalue expression. Les instructions suivantes sont équivalentes :
$result:=Undefined($exp)
// résultat identique :
$result:=(Value type($exp)=Est une variable indéfinie)
Dans certains cas, il est possible que vous ne souhaitiez pas évaluer le paramètre (par exemple, lorsque vous utilisez un pointeur vers une variable pour véifier si la variable est définie). Vous devez alors écrire :
$result:=(Type($ptr->)=Est une variable indéfinie) //vrai si la variable pointée n'existe pas (pas d'erreur)
Exemple
Cet exemple compare les différents résultats de la commande Undefined et de la commande Null appliquées aux propriétés d'objets, en fonction du contexte :
var vEmp : Object
vEmp:=New object
vEmp.name:="Smith"
vEmp.children:=Null
$undefined:=Undefined(vEmp.name) // Faux
$null:=(vEmp.name=Null) // Faux
$undefined:=Undefined(vEmp.children) // Faux
$null:=(vEmp.children=Null) // Vrai
$undefined:=Undefined(vEmp.parent) // Vrai
$null:=(vEmp.parent=Null) // Vrai