Undefined
Undefined ( variavel ) -> Resultado
Parâmetro | Tipo | Descrição | |
---|---|---|---|
variavel | Expression | → | Variável a testar |
Resultado | Boolean | ← | TRUE=Variável é atualmente indefinida; FALSE= Variável é atualmente definida |
Descrição
Undefined retorna True se não for definida variavel e False se variavel não for definida.
- Uma variável está definida se tiver sido criada através de uma diretiva de compilação ou se lhe atribui um valor. Está indefinida em todos os demais casos. Se o banco tiver sido compilado, a função Undefined retorna False para todas as variáveis
- Uma propriedade de objeto é indefinida se não existir no objeto
- A função Undefined sempre retorna False para referências de campo.
Nota: lembre que Undefined avalia a expressão. As declarações abaixo são equivalentes:
$result:=Undefined($exp)
// mesmo resultado:
$result:=(Value type($exp)=Is undefined)
Em alguns casos, é possível que não queira que o parâmetro seja avaliado (por exemplo, quando utilizar um ponteiro a uma variável para verificar se a variável está definida). Então, deve escrever:
$result:=(Type($ptr->)=Is undefined) //true se a variável apontada não existir (sem erro)
.
Exemplo
Abaixo os diferentes resultados do comando Undefined assim como do comando Null com propriedades de objeto, dependendo do contexto:
var vEmp : Object
vEmp:=New object
vEmp.name:="Smith"
vEmp.children:=Null
$undefined:=Undefined(vEmp.name) // False
$null:=(vEmp.name=Null) //False
$undefined:=Undefined(vEmp.children) // False
$null:=(vEmp.children=Null) //True
$undefined:=Undefined(vEmp.parent) // True
$null:=(vEmp.parent=Null) //True