• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
ColdFusion | Variables
  1. Introduction
  2. Types de données
  3. Règles de nommage des variables
  4. Variables dynamiques
  5. Tester l'existence des variables

  1. Introduction
    Les variables dans ColdFusion sont créées lorsqu'on leurs assigne des valeurs. Typiquement, vous créez une variable en utilisant l'instruction d'assignation avec le tag CFScript ou le tag CFSet.
    Avant l'assignation, la variable est considérée inexistante et donc vous obteniez une erreur si vous essayez de lire sa valeur.
  2. Types de données
    a) Types simples :
    ColdFusion reconnait quatre types simples : numériques (entiers et réels), chaînes de caractères, valeurs booléennes, et dates.

    Un booléen est toute valeur qui peut être convertie en valeur booléenne, cela inclut :
    - true ou false (non sensible à la casse) ;
    - Valeur numérique ;
    - Chaîne de caractères qui contient la valeur (non sensible à la casse) « true », « false », « yes », « no », ou une valeur numérique.

    Remarque : Les chaînes de caractères sont déclarées en utilisant des guillemets (") ou des apostrophes (').

    Les types simples ne sont pas définis explicitement dans ColdFusion ; le type est automatiquement déduit en fonction du contexte de l'utilisation des variables :
    En fonction des opérateurs, des expressions, ou des fonctions utilisées, ColdFusion convertit automatiquement les valeurs des variables aux bons types. Par exemple la chaîne de caractères « "true" » va être convertie en valeur booléenne « true » si utilisée dans une expression booléenne. ColdFusion génère une exception si la conversion n'est pas possible.

    b) Types complexes :
    Les variables de types complexes sont des conteneurs des données de types simples ou complexes comme les tableaux, les structures, et les requêtes.

    c) Types binaires :
    Typique pour les variables qui sauvegardent des données binaires comme les fichiers.

    d) Types Objets :
    Ces sont des constructions complexe comme les composants CFC.
  3. Règles de nommage des variables
    Les noms des variables doivent respectées les règles suivantes :
    - Le nom d'une variable doit commencer par une lettre, un caractère de soulignement (underscore), ou un symbole monétaire « $ ».
    - La première lettre du nom d'une variable peut être suivie par des lettres, des chiffres, des caractères de soulignement (underscore), et/ou des symboles monétaires « $ ».
    - Le nom d'une variable ne peut contenir des espaces.

    Les noms des variables ne sont pas sensibles à la casse (« myVar » est la même chose que « MYVAR ») mais il est préférable de garder les noms des variables cohérents à travers tout le code de l'application.

    Remarque : Il est préférable de scoper toutes les variables chaque fois qu'elles sont utilisées (voir plus de détails dans le chapitre sur les portées des variables).
    Voici quelques avantages à scoper les variables :
    • Le scope rend le code plus clean, et évite la confusion à la lecture du code ;

    • Le scope évite les risques d'utilisation accidentelle des variables de d'autres scopes ;

    • Le scope peut rendre le code plus performant, vu que ColdFusion n'aura pas à résoudre le scope des variables.
    Voici l'ordre de la résolution du scope de la variable si celui ci est omit lors de l'utilisation de la variable :
    1. Variables locales des fonctions (inclut le scope LOCAL).

    2. Variables du scope ARGUMENTS.

    3. Variables locales du tag cfthread.

    4. Variables locales du tag cfquery.

    5. Variables du scope THREAD.

    6. Variables du scope VARIABLES.

    7. Variables du scope CGI.

    8. Variables locales du tag cffile.

    9. Variables du scope URL.

    10. Variables du scope FORM.

    11. Variables du scope COOKIE.

    12. Variables du scope CLIENT.

    13. Pour les autres scopes, il faut explicitement spécifier le scope de la variable si on veut le référencer.
  4. Variables dynamiques
    Une variable dynamique est une variable qui obtient son nom dynamiquement à l'exécution. Typiquement le nom est obtenu en concaténant un nom « statique » et un nom « variable ». Dans l'exemple suivant, on crée une nouvelle variable dont le nom sera la constante « index_ » concaténée avec la valeur de la variable « x ».

    Pour afficher la valeur des variables dynamiques, il faut utiliser la syntaxe suivante :

    Ou:

    TODO : expliquer l'utilisation de la fonction Evaluate()
  5. Tester l'existence des variables
    Pour tester l'existence d'une variable, ColdFusion offre la fonction IsDefined et le tag CFParam :

    a) IsDefined

    Cette fonction permet de vérifier si une variable existe déjà.
    - En utilisant la syntaxe CFML :

    - En utilisant le tag CFScript :

    b) CFParam

    Ce tag permet, en plus de tester l'existence de la variable, de valider le type de la variable et d'assigner une valeur par défaut à la variable si inexistante.

    - En utilisant la syntaxe CFML :

    - En utilisant le tag CFScript :

    Le tag CFParam possède les attributs suivants :

    Attribut
    Requis
    Description
    name
    oui
    Nom de la variable.
    default
    non
    Si la variable est inexistant, elle sera créer et initialiser par la valeur de cet attribut.
    type
    non
    Le type de données valide pour la variable.
    min
    non
    La valeur minimale que la variable peut prendre. À utiliser uniquement avec le type « range ».
    max
    non
    La valeur maximale que la variable peut prendre. À utiliser uniquement avec le type « range ».
    pattern
    non
    L'expression régulière que la valeur de la variable doit correspondre. À utiliser uniquement avec les types « regex » ou « regular_expression ».

    Remarques :
    • Si la variable est inexistante et que l'attribut « default » n'est pas précisé, alors ColdFusion générera une erreur (par exemple : « The required parameter bookID was not provided »).
    • La valeur de l'attribut « default » ne sera pas affectée à la variable s'elle existe déjà, mais la valeur de cet attribut sera comme même évaluée et si l'expression a un effet de bord, il va se reproduire. De même, ColdFusion générera une erreur s'il n'arrive pas à évaluer l'expression correctement.
    • L'attribut « type » permet de préciser le type de la variable. ColdFusion générera une erreur si la variable est existante mais sa valeur ne peut être convertie au type spécifiée. Aussi ColdFusion générera une erreur si la variable est inexistante mais la valeur de l'attribut « default » ne peut être convertie au type spécifiée.
    • Les attributs « min » et « max » n'ont aucun effet si la valeur de l'attribut « type » n'est pas « range ». Mais si le type est « range », ColdFusion générera une erreur si la variable est existante mais sa valeur n'est pas numérique ou n'est pas comprise entre les valeurs spécifiées dans les attributs « min » et « max ». Aussi ColdFusion générera une erreur si la variable est inexistante mais la valeur de l'attribut « default » n'est pas numérique ou n'est pas comprise entre les valeurs spécifiées dans les attributs « min » et « max ».
    Voici la liste des valeurs possibles pour l'attribut « type » :

    Type de données
    Description
    any
    N'importe quel type de données.
    string
    Chaîne de caractères.
    boolean
    Valeur Booléenne: yes, no, true, false, ou une valeur numérique.
    integer
    Valeur entière.
    float
    numeric
    Valeur numérique.
    date
    time
    Dates.

    Type de données
    Description
    range
    Intervalle numérique (à utiliser avec l'attribut « min » ou/et « max »).
    usdate
    Date E.U. avec le format « mm/dd/yyyy », avec 1 à 2 chiffres pour le mois et le jour, et 1 à 4 chiffres pour l'année.
    eurodate
    Date U.E. avec le format « dd/mm/yyyy », avec 1 à 2 chiffres pour le mois et le jour, et 1 à 4 chiffres pour l'année. Le séparateur « . » est aussi acceptable.

    Type de données
    Description
    regex
    regular_expression
    Expression régulière (à utiliser avec l'attribut « pattern »).
    variableName
    La valeur de la variable doit être une chaîne de caractères formatée selon les conventions de ColdFusion pour nommer des variables.
    uuid
    ColdFusion « Universally Unique Identifier » avec le format "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXX", où "X" est une valeur hexadécimale.
    guid
    ColdFusion « Universally Unique Identifier » avec le format "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", où "X" est une valeur hexadécimale.
    email
    Format d'une adresse courriel.
    url
    Une URL http, https, ftp, file, mailto, ou news.
    ssn
    social_security_number
    Format du numéro de sécurité social E.U.
    telephone
    Format du numéro de téléphone E.U.
    zipcode
    Format du code postal E.U. (5- ou 9- chifres).
    creditcard
    Un nombre de 13-16 chiffres conforme a l'algorithme mod10.

    Type de données
    Description
    array
    Tableau.
    struct
    Structure.
    query
    Objet requête.

    Type de données
    Description
    binary
    Valeur binaire.
    xml
    Objet XML et chaînes de caractères XML.

    Exemples :

    Si la variable « bookID » n'est pas encore déclarée, CFParam va le déclarer et initialiser sa valeur à « 999999 ».



    Pour le cas de la variable « myStruct.bookName », CFParam vérifie s'il existe une structure « myStruct » qui contient la variable « bookName ». Si la structure « myStruct » n'est pas encore créée, alors CFParam va créer d'abords cette structure puis y attachera la variable « bookName », sinon, si la structure « myStruct » existe déjà, alors CFParam va créer uniquement la variable « bookName » si inexistante et initialiser sa valeur à « ColdFusion 10 ».
© 2025  mtitek