Duda sobre cómo pasar parámetros a una función
KateLibby:
Hola! Tengo una duda que es muy de principiante y que hasta hoy he podido ir esquivando, pero que ha llegado el momento de saber.
Se trata del paso de parámetros a una función. Siguiendo este ejemplo vemos que los parámetros b y c son opcionales
Código
function cualquierAccion (a, b = '', c='')
{
// lo que sea
}
Por lo que yo puedo llamar la función de esta manera:
Código
cualquierAccion ( $valor_a );
Mi pregunta es: ¿Si a la hora de llamar la función yo quiero darle valor al parámetro c pero no quiero darle valor al parámetro b, cómo debo llamarla? Porque si hago esto:
Código
cualquierAccion ( $valor_a, $valor_c );
¿Cómo sabe la función si me estoy refiriendo al parámetro b o c?
Gracias de antemano.
MCKSys Argentina:
Hola!
No soy experto en PHP, pero buscando en google dí con ésto: https://stackoverflow.com/questions/9166914/using-default-arguments-in-a-function
Una de las respuestas, dice lo siguiente:
Citar
Optional arguments only work at the end of a function call. There is no way to specify a value for $y in your function without also specifying $x. Some languages support this via named parameters (VB/C# for example), but not PHP.
Por lo que dice, en PHP, debes llamar la función con todos los parámeteros necesarios.
En tu caso, si quieres darle valor al parametro c, necesitas darle valor también al parámetro b. No puede llamar una función e inidicarle los parámetros por nombre (como es posible en otros lenguajes, como por ej. python).
En tu ultimo ejemplo, la función tomará $valor_c como el valor de b.
Saludos!
KateLibby:
Muchas gracias!
Danielㅤ:
Hola, si es posible hacer lo que querés, tenes que hacerlo de la siguiente manera:
Código
cualquierAccion($valor_a, NULL, $valor_c );
Un valor de un parámetro puede ser opcional si en la declaración del método le asignamos un valor por defecto, como es el caso del ejemplo del código que nos has dejado:
Código
b = ''
Saludos
MinusFour:
Cita de: MCKSys Argentina en 5 Octubre 2022, 17:22 pm
Hola!
No soy experto en PHP, pero buscando en google dí con ésto: https://stackoverflow.com/questions/9166914/using-default-arguments-in-a-function
PHP 8.0 si permite especificar el nombre de los argumentos:
https://www.php.net/manual/en/functions.arguments.php#functions.named-arguments
Por lo tanto si es posible realizar una omisión del argumento intermediario:
Código
cualquierAccion ( a: $valor_a, c: $valor_c );
Cita de: Danielㅤ en 5 Octubre 2022, 19:45 pm
Hola, si es posible hacer lo que querés, tenes que hacerlo de la siguiente manera:
Código
cualquierAccion($valor_a, NULL, $valor_c );
Un valor de un parámetro puede ser opcional si en la declaración del método le asignamos un valor por defecto, como es el caso del ejemplo del código que nos has dejado:
Código
b = ''
Saludos
La página de PHP dice que no es posible hacer esto:
Citar
The default is used only when the parameter is not specified; in particular, note that passing null does not assign the default value.
P.D: los parámetros de la función necesitan empezar con $.
Navegación
[#] Página Siguiente