Question

Quelle est la différence entre ces deux blocs de code, lorsqu'il est appelé juste après une balise de cffonction:

<cfparam name="bork_bork_bork" default="false">

<cfargument name="bork_bork_bork" required="false" default="false">
Était-ce utile?

La solution

<cfparam>, lorsqu'il est utilisé avec l'attribut par défaut, s'assurera qu'une variable existe. Parce qu'il n'y a pas de portée spécifiée, bork_bork_bork est mis dans le Variables portée.

<cfargument> est utilisé pour transmettre des arguments à une fonction. Ces valeurs sont stockées dans le Arguments portée. Vous accèderiez à la valeur en utilisant arguments.bork_bork_bork.

Notez que arguments.bork_bork_bork et bork_bork_bork ne sont pas les mêmes. La portée de arguments est uniquement dans la fonction, l'autre est stocké dans le Variables Scope et sera valide n'importe où sur la page (bien que je ne recommande pas le coder de cette façon.)

Autres conseils

CFPARAM n'a rien à voir avec les fonctions. Je peux voir que cela est déroutant, étant donné que Param / Argument sont des mots interchangeables dans la plupart des langues. Gardez à l'esprit que les fonctions définies par l'utilisateur n'étaient pas ajoutées à CF jusqu'à la version 5, il n'y avait donc pas de conflit dans l'utilisation de CFPARAM comme moyen d'initialiser les variables. De plus, la balise CFPARAM a probablement tiré son nom de la fonction désormais obsolète, ParameTerexists () (ou vice versa - au moment où je suis entré dans CF, à la version 4.0 (1999), cette fonction a déjà été obsolète, donc j'ai raté l'histoire derrière ce)

CFPARAM est un moyen de définir une valeur par défaut pour toute variable si la variable n'existe pas déjà. C'est un raccourci pour faire ce qui suit:

<cfif NOT isDefined('bork_bork_bork')>
    <cfset bork_bork_bork = 'myDefaultSetting'>
</cfif>

Cfargument n'est utilisable qu'après une balise d'ouverture pour définir un argument transmis à une fonction CFC ou à une fonction définie par l'utilisateur.

D'après ce dont je me souviens, rien ne peut exister entre la balise de cffunction et la balise Cfargument, ils doivent donc apparaître juste après l'étiquette de cffunction.

Depuis la fonction, vous accédez à Cfargument via la portée des arguments {arguments.bork_bork_bork} ou via un tableau {arguments1}

CFPARAM s'assurera simplement que la variable est disponible sur la demande ne doit pas être utilisée à la place du CFARgument. Pour plus de lecture, consultez:

cfargument

En utilisant la portée des arguments comme tableau

Définition des fonctions en utilisant la balise de cffonction

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top