Título: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: Leguim en 7 Noviembre 2021, 00:23 am Es decir:
Código
Ejecuciones: Código
¿Cómo harían esto? Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: #!drvy en 7 Noviembre 2021, 05:24 am No tiene mucho sentido. En el momento en el que lo pasas a una función, el parámetro se vuelve una variable.
Ni siquiera debug_backtrace() te dice como se ha pasado el valor. Puedes forzar a que te pasen solo variables requiriendo los parámetros por referencia: Código
Esto tiraría un fatal error si se le pasa una constante, pero también tienes el problema de que ahora la variable está referenciada y cualquier cambio afecta a nivel global. También puedes buscar si el valor está definido en las $GLOBALS por tanto ahí sabrías que tienes una variable con ese valor... pero ni es fiable ni recomendable. ¿Por qué quieres saber de donde viene? Saludos Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: Danielㅤ en 7 Noviembre 2021, 15:53 pm Hola, una manera que se me ocurre tomando tu código de ejemplo, sería la siguiente:
Código
Saludos Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: Serapis en 7 Noviembre 2021, 16:39 pm La definición de una función no contempla constantes.
El usuario cuando no quiere que el contenido de un dato sea modificado dentro de la función, es reponsable de mandar una copia, lo que técnicamente es lo mismo que una constante, pero de forma transparente a la función. Porque dentro de la función no se sabe el origen de la misma. De hecho uno podría hacer todas estas cosas: Código: entero = declaracion de funcion Y(entero valor) Como puedes entender, indistintamente de que se pase en ocasiones por valor o por referencia, una constante, no es meramente aquello que está declarado como constante, puede asumirse que es constante, si el cambio de dicha variable dentro de la función, a la vuelta de la función no afecta a la de origen. Una función no necesita saber que pasa fuera de ella, solo precisa saber que se hace dentro, para eso tiene el código preciso de lo que debe hacer. Si resultara vital saber si una variable es o no una constante (no se me ocurre a bote pronto, ningún caso donde esto deba ser necesario, ni siquiera útil), podría añadirse un parámetro adicional que así lo detalle, pero no hay garantias de que el usuario tenga que 'decir' la verdad... Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: MinusFour en 7 Noviembre 2021, 18:52 pm Hola, una manera que se me ocurre tomando tu código de ejemplo, sería la siguiente: Código
Saludos Este código no funciona. Dudo mucho que haya una situación en la que importe si el argumento es una literal o una variable. Al menos no en PHP. Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: Danielㅤ en 7 Noviembre 2021, 19:06 pm Si es posible que no funcione porque no estoy desde una PC para probarlo o un hosting y los intérpretes online son un tanto pesados desde un móvil y además algunas veces funcionan de una manera inesperada.
Pero básicamente el código de ejemplo que he dejado es una posible forma que se lo podría hacer. Saludos Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: MinusFour en 7 Noviembre 2021, 20:53 pm Si es posible que no funcione porque no estoy desde una PC para probarlo o un hosting y los intérpretes online son un tanto pesados desde un móvil y además algunas veces funcionan de una manera inesperada. Pero básicamente el código de ejemplo que he dejado es una posible forma que se lo podría hacer. Saludos Yo creo que a final de cuentas tu ejemplo es una manera manual para confirmar si es una variable o literal. E.g. Código
Lo cual no contesta la pregunta realmente... Título: Re: [Pregunta]: ¿Cómo hago para saber si un parámetro viene de una variable o una constante? Publicado por: elmascato en 13 Noviembre 2021, 12:25 pm Tú siempre vas a recibir una variable en la función, ya que tiene que ser un dato dinámico. Dentro de la misma función es donde deberías definir el tipo en el que quieres incorporar esos datos, en una variable o en una constante
|