Pregunta

¿Cuál es la diferencia entre estos dos bloques de código, cuando se llama inmediatamente después de un cffunction etiqueta:

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

<cfargument name="bork_bork_bork" required="false" default="false">
¿Fue útil?

Solución

<cfparam>, cuando se utiliza con el atributo predeterminado, se asegurará de que una variable existe.Porque no hay ningún ámbito especificado, bork_bork_bork esta puesto en el Variables ámbito de aplicación.

<cfargument> se utiliza para pasar un argumentos a una función.Estos valores se almacenan en el Arguments ámbito de aplicación.Para poder acceder al valor de uso de arguments.bork_bork_bork.

Tenga en cuenta que arguments.bork_bork_bork y bork_bork_bork no son los mismos.El ámbito de aplicación de arguments es sólo dentro de la función, la otra es la que se almacena en el Variables ámbito de aplicación y serán válidos en cualquier lugar de la página (aunque yo no recomendaría la codificación de esa manera.)

Otros consejos

cfparam no tiene nada que ver con las funciones.Puedo ver que esto es confuso, dado que Param / Argument son palabras intercambiables en la mayoría de los idiomas.Tenga en cuenta que las funciones definidas por el usuario no se agregaron a CF hasta la versión 5, por lo que no hubo conflicto en el uso de CFPPARAM como una forma de inicializar las variables.Además, la etiqueta CFPARAM probablemente dibujó su nombre de la función ahora obsoleta, los parámetros (o viceversa (o viceversa, en la Versión 4.0 (1999), esa función ya estaba en desuso, así que me perdí la historia detráseso)

CFPARAM es una forma de establecer un valor predeterminado para cualquier variable si la variable ya no existe.Es un acceso directo para hacer lo siguiente:

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

Cfargument solo se puede utilizar después de una etiqueta de apertura para definir un argumento que se pasa a una función CFC o una función definida por el usuario.

De lo que recuerdo, nada puede existir entre la etiqueta CFCUCCIÓN y la etiqueta de CFARGUMT, por lo que deben aparecer justo después de la etiqueta CFFUNCCIÓN.

desde dentro de la función accederá a Cfargument a través del alcance de los argumentos {arguments.bork_bork_bork} o a través de una matriz {arguments 1 }

cfparam Similará que la variable esté disponible en la solicitud no debe utilizarse en lugar de CFARGUMENT.Para una mayor lectura, salida:

cfargument

> usando el alcance de los argumentos como una matriz

Funciones definitorias mediante la etiqueta CFFUNCCIÓN

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top