Duda sobre cómo pasar parámetros a una función

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente