elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda sobre cómo pasar parámetros a una función
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre cómo pasar parámetros a una función  (Leído 5,045 veces)
KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Duda sobre cómo pasar parámetros a una función
« 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.


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #1 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

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!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #2 en: 5 Octubre 2022, 18:19 pm »

Muchas gracias!
En línea

Danielㅤ


Conectado Conectado

Mensajes: 1.681


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #3 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
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #4 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


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 $.
« Última modificación: 5 Octubre 2022, 22:03 pm por MinusFour » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #5 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!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Danielㅤ


Conectado Conectado

Mensajes: 1.681


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #6 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
En línea

KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Duda sobre cómo pasar parámetros a una función
« Respuesta #7 en: 6 Octubre 2022, 09:31 am »

Gracias por todas vuestras respuestas.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines