Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: KateLibby en 5 Octubre 2022, 16:07 pm



Título: Duda sobre cómo pasar parámetros a una función
Publicado por: KateLibby en 5 Octubre 2022, 16:07 pm
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
  1. function cualquierAccion (a, b = '', c='')
  2. {
  3.    // lo que sea
  4. }

Por lo que yo puedo llamar la función de esta manera:

Código
  1. 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
  1. cualquierAccion ( $valor_a, $valor_c );

¿Cómo sabe la función si me estoy refiriendo al parámetro b o c?

Gracias de antemano.


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: 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 (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!


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: KateLibby en 5 Octubre 2022, 18:19 pm
Muchas gracias!


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: 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
  1. 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
  1. b = ''


Saludos


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: MinusFour en 5 Octubre 2022, 21:58 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 (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
  1. cualquierAccion ( a: $valor_a, c: $valor_c );


Hola, si es posible hacer lo que querés, tenes que hacerlo de la siguiente manera:

Código
  1. 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
  1. 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 $.


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: MCKSys Argentina en 5 Octubre 2022, 23:44 pm
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
  1. cualquierAccion ( a: $valor_a, c: $valor_c );

Lo dicho!

Hola!

No soy experto en PHP...

 :P ;D

Saludos!


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: Danielㅤ en 6 Octubre 2022, 02:47 am
Aquí se habla un poco sobre lo relacionado con el tema:

php funciones con argumentos opcionales parámetros valor predeterminado ejemplo
https://aprenderaprogramar.com/foros/index.php?topic=4033.0


Saludos


Título: Re: Duda sobre cómo pasar parámetros a una función
Publicado por: KateLibby en 6 Octubre 2022, 09:31 am
Gracias por todas vuestras respuestas.